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.support-3.5
parent
b67d098841
commit
3177ef544f
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue