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.
This commit is contained in:
Damien George 2017-11-20 17:29:58 +11:00
parent c60fc670ea
commit 5b8998da6d
4 changed files with 10 additions and 8 deletions

View File

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

View File

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

View File

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

View File

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