From 5b8998da6dfed6c8f54b8b34228f25d93dbb9d29 Mon Sep 17 00:00:00 2001 From: Damien George Date: Mon, 20 Nov 2017 17:29:58 +1100 Subject: [PATCH] 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. --- py/runtime.c | 7 +++++++ py/runtime.h | 2 +- py/stackctrl.c | 7 +------ py/vm.c | 2 +- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/py/runtime.c b/py/runtime.c index 457266c67f..5fd053e1a2 100644 --- a/py/runtime.c +++ b/py/runtime.c @@ -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 diff --git a/py/runtime.h b/py/runtime.h index 3f0d1104e1..a19f64c067 100644 --- a/py/runtime.h +++ b/py/runtime.h @@ -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 diff --git a/py/stackctrl.c b/py/stackctrl.c index 11165b9a6f..5c07796bde 100644 --- a/py/stackctrl.c +++ b/py/stackctrl.c @@ -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(); } } diff --git a/py/vm.c b/py/vm.c index e6679729b2..5011af5c3e 100644 --- a/py/vm.c +++ b/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