Skip to content

Commit

Permalink
py: Add stack check to mp_iternext, since it can be called recursively.
Browse files Browse the repository at this point in the history
Eg, builtin map can map over a map, etc, and call iternext deeply.

Addresses issue #1294.
  • Loading branch information
dpgeorge committed Jun 3, 2015
1 parent 181adc6 commit 953c23b
Showing 1 changed file with 1 addition and 0 deletions.
1 change: 1 addition & 0 deletions py/runtime.c
Original file line number Diff line number Diff line change
Expand Up @@ -1044,6 +1044,7 @@ mp_obj_t mp_iternext_allow_raise(mp_obj_t o_in) {
// will always return MP_OBJ_STOP_ITERATION instead of raising StopIteration() (or any subclass thereof)
// may raise other exceptions
mp_obj_t mp_iternext(mp_obj_t o_in) {
MP_STACK_CHECK(); // enumerate, filter, map and zip can recursively call mp_iternext
mp_obj_type_t *type = mp_obj_get_type(o_in);
if (type->iternext != NULL) {
return type->iternext(o_in);
Expand Down

0 comments on commit 953c23b

Please sign in to comment.