Skip to content

Commit aa9dbb1

Browse files
pfalcondpgeorge
authored andcommitted
objgenerator: If generator yielded STOP_ITERATION value, it's stopped.
MP_OBJ_STOP_ITERATION is equivalent of raising StopIteration, except mp_vm_return_kind_t for it is "yield".
1 parent 5df81de commit aa9dbb1

1 file changed

Lines changed: 3 additions & 0 deletions

File tree

py/objgenerator.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,9 @@ mp_vm_return_kind_t mp_obj_gen_resume(mp_obj_t self_in, mp_obj_t send_value, mp_
134134

135135
case MP_VM_RETURN_YIELD:
136136
*ret_val = *self->code_state.sp;
137+
if (*ret_val == MP_OBJ_STOP_ITERATION) {
138+
self->code_state.ip = 0;
139+
}
137140
break;
138141

139142
case MP_VM_RETURN_EXCEPTION:

0 commit comments

Comments
 (0)