stackctrl: Encode "recursion depth exceeded" message as qstr.

So corresponding exception can be thrown even under tight memory conditions.
pull/1130/head
Paul Sokolovsky 2015-02-15 22:34:31 +03:00
rodzic fa3b895145
commit e8432b3c72
2 zmienionych plików z 3 dodań i 1 usunięć

Wyświetl plik

@ -385,6 +385,7 @@ Q(qstr_info)
#if MICROPY_ENABLE_EMERGENCY_EXCEPTION_BUF && (MICROPY_EMERGENCY_EXCEPTION_BUF_SIZE == 0) #if MICROPY_ENABLE_EMERGENCY_EXCEPTION_BUF && (MICROPY_EMERGENCY_EXCEPTION_BUF_SIZE == 0)
Q(alloc_emergency_exception_buf) Q(alloc_emergency_exception_buf)
#endif #endif
Q(maximum recursion depth exceeded)
Q(<module>) Q(<module>)
Q(<lambda>) Q(<lambda>)

Wyświetl plik

@ -48,7 +48,8 @@ void mp_stack_set_limit(mp_uint_t limit) {
void mp_stack_check(void) { void mp_stack_check(void) {
if (mp_stack_usage() >= MP_STATE_VM(stack_limit)) { if (mp_stack_usage() >= MP_STATE_VM(stack_limit)) {
nlr_raise(mp_obj_new_exception_msg(&mp_type_RuntimeError, "maximum recursion depth exceeded")); nlr_raise(mp_obj_new_exception_arg1(&mp_type_RuntimeError,
MP_OBJ_NEW_QSTR(MP_QSTR_maximum_space_recursion_space_depth_space_exceeded)));
} }
} }