diff options
Diffstat (limited to 'py/objgetitemiter.c')
| -rw-r--r-- | py/objgetitemiter.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/py/objgetitemiter.c b/py/objgetitemiter.c index ae98db8c7..b0e23e6d3 100644 --- a/py/objgetitemiter.c +++ b/py/objgetitemiter.c @@ -37,7 +37,7 @@ typedef struct _mp_obj_getitem_iter_t { } mp_obj_getitem_iter_t; STATIC mp_obj_t it_iternext(mp_obj_t self_in) { - mp_obj_getitem_iter_t *self = self_in; + mp_obj_getitem_iter_t *self = MP_OBJ_TO_PTR(self_in); nlr_buf_t nlr; if (nlr_push(&nlr) == 0) { // try to get next item @@ -47,13 +47,13 @@ STATIC mp_obj_t it_iternext(mp_obj_t self_in) { return value; } else { // an exception was raised - mp_obj_type_t *t = mp_obj_get_type(nlr.ret_val); + mp_obj_type_t *t = (mp_obj_type_t*)((mp_obj_base_t*)nlr.ret_val)->type; if (t == &mp_type_StopIteration || t == &mp_type_IndexError) { // return MP_OBJ_STOP_ITERATION instead of raising return MP_OBJ_STOP_ITERATION; } else { // re-raise exception - nlr_raise(nlr.ret_val); + nlr_jump(nlr.ret_val); } } } @@ -72,5 +72,5 @@ mp_obj_t mp_obj_new_getitem_iter(mp_obj_t *args) { o->args[0] = args[0]; o->args[1] = args[1]; o->args[2] = MP_OBJ_NEW_SMALL_INT(0); - return o; + return MP_OBJ_FROM_PTR(o); } |
