kopia lustrzana https://github.com/micropython/micropython
py/runtime: Move mp_exc_recursion_depth to runtime and rename to raise.
For consistency this helper function is renamed to match the other exception helpers, and moved to their location in runtime.c.pull/3448/head
rodzic
c60fc670ea
commit
5b8998da6d
|
@ -1456,3 +1456,10 @@ NORETURN void mp_raise_OSError(int errno_) {
|
|||
NORETURN void mp_raise_NotImplementedError(const char *msg) {
|
||||
mp_raise_msg(&mp_type_NotImplementedError, msg);
|
||||
}
|
||||
|
||||
#if MICROPY_STACK_CHECK
|
||||
NORETURN void mp_raise_recursion_depth(void) {
|
||||
nlr_raise(mp_obj_new_exception_arg1(&mp_type_RuntimeError,
|
||||
MP_OBJ_NEW_QSTR(MP_QSTR_maximum_space_recursion_space_depth_space_exceeded)));
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -151,7 +151,7 @@ NORETURN void mp_raise_ValueError(const char *msg);
|
|||
NORETURN void mp_raise_TypeError(const char *msg);
|
||||
NORETURN void mp_raise_NotImplementedError(const char *msg);
|
||||
NORETURN void mp_raise_OSError(int errno_);
|
||||
NORETURN void mp_exc_recursion_depth(void);
|
||||
NORETURN void mp_raise_recursion_depth(void);
|
||||
|
||||
#if MICROPY_BUILTIN_METHOD_CHECK_SELF_ARG
|
||||
#undef mp_check_self
|
||||
|
|
|
@ -48,14 +48,9 @@ void mp_stack_set_limit(mp_uint_t limit) {
|
|||
MP_STATE_THREAD(stack_limit) = limit;
|
||||
}
|
||||
|
||||
NORETURN void mp_exc_recursion_depth(void) {
|
||||
nlr_raise(mp_obj_new_exception_arg1(&mp_type_RuntimeError,
|
||||
MP_OBJ_NEW_QSTR(MP_QSTR_maximum_space_recursion_space_depth_space_exceeded)));
|
||||
}
|
||||
|
||||
void mp_stack_check(void) {
|
||||
if (mp_stack_usage() >= MP_STATE_THREAD(stack_limit)) {
|
||||
mp_exc_recursion_depth();
|
||||
mp_raise_recursion_depth();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
2
py/vm.c
2
py/vm.c
|
@ -935,7 +935,7 @@ unwind_jump:;
|
|||
#if MICROPY_STACKLESS_STRICT
|
||||
else {
|
||||
deep_recursion_error:
|
||||
mp_exc_recursion_depth();
|
||||
mp_raise_recursion_depth();
|
||||
}
|
||||
#else
|
||||
// If we couldn't allocate codestate on heap, in
|
||||
|
|
Ładowanie…
Reference in New Issue