summaryrefslogtreecommitdiffstatshomepage
path: root/py/vm.c
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2014-05-25 01:39:27 +0300
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2014-05-25 01:42:24 +0300
commitafaaf535e6cfaf599432b13a2fbe9373e6a2c4b8 (patch)
tree34ffa8efb2b5f06a128edc983d40025f703b5c26 /py/vm.c
parent7a4ddd24281a7e21eeaa697644418015cf4dd650 (diff)
downloadmicropython-afaaf535e6cfaf599432b13a2fbe9373e6a2c4b8.tar.gz
micropython-afaaf535e6cfaf599432b13a2fbe9373e6a2c4b8.zip
objslice: Support arbitrary objects start, stop, and step.
Older int-only encoding is not expressive enough to support arbitrary slice assignment operations.
Diffstat (limited to 'py/vm.c')
-rw-r--r--py/vm.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/py/vm.c b/py/vm.c
index 1f3f693c97..608c9096d9 100644
--- a/py/vm.c
+++ b/py/vm.c
@@ -768,12 +768,12 @@ unwind_jump:
if (unum == 2) {
obj2 = POP();
obj1 = TOP();
- SET_TOP(mp_obj_new_slice(obj1, obj2, NULL));
+ SET_TOP(mp_obj_new_slice(obj1, obj2, mp_const_none));
} else {
- obj1 = mp_obj_new_exception_msg(&mp_type_NotImplementedError, "3-argument slice is not supported");
- nlr_pop();
- fastn[0] = obj1;
- return MP_VM_RETURN_EXCEPTION;
+ mp_obj_t obj3 = POP();
+ obj2 = POP();
+ obj1 = TOP();
+ SET_TOP(mp_obj_new_slice(obj1, obj2, obj3));
}
DISPATCH();
#endif