summaryrefslogtreecommitdiff
path: root/py/objgenerator.c
diff options
context:
space:
mode:
Diffstat (limited to 'py/objgenerator.c')
-rw-r--r--py/objgenerator.c11
1 files changed, 2 insertions, 9 deletions
diff --git a/py/objgenerator.c b/py/objgenerator.c
index 1b06975c9..a4d22aa8d 100644
--- a/py/objgenerator.c
+++ b/py/objgenerator.c
@@ -120,6 +120,7 @@ mp_vm_return_kind_t mp_obj_gen_resume(mp_obj_t self_in, mp_obj_t send_value, mp_
switch (ret_kind) {
case MP_VM_RETURN_NORMAL:
+ default:
// Explicitly mark generator as completed. If we don't do this,
// subsequent next() may re-execute statements after last yield
// again and again, leading to side effects.
@@ -137,11 +138,6 @@ mp_vm_return_kind_t mp_obj_gen_resume(mp_obj_t self_in, mp_obj_t send_value, mp_
self->code_state.ip = 0;
*ret_val = self->code_state.state[self->code_state.n_state - 1];
break;
-
- default:
- assert(0);
- *ret_val = mp_const_none;
- break;
}
return ret_kind;
@@ -151,6 +147,7 @@ STATIC mp_obj_t gen_resume_and_raise(mp_obj_t self_in, mp_obj_t send_value, mp_o
mp_obj_t ret;
switch (mp_obj_gen_resume(self_in, send_value, throw_value, &ret)) {
case MP_VM_RETURN_NORMAL:
+ default:
// Optimize return w/o value in case generator is used in for loop
if (ret == mp_const_none || ret == MP_OBJ_STOP_ITERATION) {
return MP_OBJ_STOP_ITERATION;
@@ -173,10 +170,6 @@ STATIC mp_obj_t gen_resume_and_raise(mp_obj_t self_in, mp_obj_t send_value, mp_o
} else {
nlr_raise(ret);
}
-
- default:
- assert(0);
- return mp_const_none;
}
}