From 3177ef544f5ecdfe5810461734fce470249e8129 Mon Sep 17 00:00:00 2001 From: Damien George Date: Wed, 13 Apr 2016 00:01:28 +0100 Subject: [PATCH] esp8266: In callback helpers, pop nlr_buf on successful call. nlr_pop must be called if no exception was raised. Also, return value of these callback helpers is made void because ther is (currently) no use for it. --- esp8266/utils.c | 12 ++++++------ esp8266/utils.h | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/esp8266/utils.c b/esp8266/utils.c index e91ebe318d..b2bdcffbe5 100644 --- a/esp8266/utils.c +++ b/esp8266/utils.c @@ -29,22 +29,22 @@ #include "py/obj.h" #include "py/nlr.h" -mp_obj_t call_function_1_protected(mp_obj_t fun, mp_obj_t arg) { +void call_function_1_protected(mp_obj_t fun, mp_obj_t arg) { nlr_buf_t nlr; if (nlr_push(&nlr) == 0) { - return mp_call_function_1(fun, arg); + mp_call_function_1(fun, arg); + nlr_pop(); } else { mp_obj_print_exception(&mp_plat_print, (mp_obj_t)nlr.ret_val); - return (mp_obj_t)nlr.ret_val; } } -mp_obj_t call_function_2_protected(mp_obj_t fun, mp_obj_t arg1, mp_obj_t arg2) { +void call_function_2_protected(mp_obj_t fun, mp_obj_t arg1, mp_obj_t arg2) { nlr_buf_t nlr; if (nlr_push(&nlr) == 0) { - return mp_call_function_2(fun, arg1, arg2); + mp_call_function_2(fun, arg1, arg2); + nlr_pop(); } else { mp_obj_print_exception(&mp_plat_print, (mp_obj_t)nlr.ret_val); - return (mp_obj_t)nlr.ret_val; } } diff --git a/esp8266/utils.h b/esp8266/utils.h index ceef9720e8..c6a4f1f3e6 100644 --- a/esp8266/utils.h +++ b/esp8266/utils.h @@ -25,5 +25,5 @@ * THE SOFTWARE. */ -mp_obj_t call_function_1_protected(mp_obj_t fun, mp_obj_t arg); -mp_obj_t call_function_2_protected(mp_obj_t fun, mp_obj_t arg1, mp_obj_t arg2); +void call_function_1_protected(mp_obj_t fun, mp_obj_t arg); +void call_function_2_protected(mp_obj_t fun, mp_obj_t arg1, mp_obj_t arg2);