py: Add stack check to mp_iternext, since it can be called recursively.

Eg, builtin map can map over a map, etc, and call iternext deeply.

Addresses issue #1294.
pull/1305/head
Damien George 2015-06-03 22:19:41 +01:00
rodzic 181adc6a4e
commit 953c23b1bc
1 zmienionych plików z 1 dodań i 0 usunięć

Wyświetl plik

@ -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);