From 1a82bab1b04a4e55cd802af2b54d84a1ac4c5a79 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Thu, 22 Apr 2021 16:46:16 +0900 Subject: error.h: rename `mrb_protect_raw` to `mrb_protect_error`; #5415 - `_raw` does not describe the nature of the function - the function protect errors during C function execution --- include/mruby/error.h | 15 +++++++-------- mrbgems/mruby-error/src/exception.c | 6 +++--- src/vm.c | 2 +- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/include/mruby/error.h b/include/mruby/error.h index a715eb0b6..20ca38586 100644 --- a/include/mruby/error.h +++ b/include/mruby/error.h @@ -104,6 +104,13 @@ mrb_break_tag_set(struct RBreak *brk, uint32_t tag) /** * Protect * + */ +typedef mrb_value mrb_protect_error_func(mrb_state *mrb, void *userdata); +MRB_API mrb_value mrb_protect_error(mrb_state *mrb, mrb_protect_error_func *body, void *userdata, mrb_bool *error); + +/** + * Protect (takes mrb_value for body argument) + * * Implemented in the mruby-error mrbgem */ MRB_API mrb_value mrb_protect(mrb_state *mrb, mrb_func_t body, mrb_value data, mrb_bool *state); @@ -133,14 +140,6 @@ MRB_API mrb_value mrb_rescue_exceptions(mrb_state *mrb, mrb_func_t body, mrb_val mrb_func_t rescue, mrb_value r_data, mrb_int len, struct RClass **classes); -typedef mrb_value mrb_protect_raw_func(mrb_state *mrb, void *userdata); - -/** - * This API function behaves like `mrb_protect()`. - * The advantage is that it avoids objectifying the user data. - */ -MRB_API mrb_value mrb_protect_raw(mrb_state *mrb, mrb_protect_raw_func *body, void *userdata, mrb_bool *error); - MRB_END_DECL #endif /* MRUBY_ERROR_H */ diff --git a/mrbgems/mruby-error/src/exception.c b/mrbgems/mruby-error/src/exception.c index cbc4835d8..ca26b8819 100644 --- a/mrbgems/mruby-error/src/exception.c +++ b/mrbgems/mruby-error/src/exception.c @@ -17,7 +17,7 @@ MRB_API mrb_value mrb_protect(mrb_state *mrb, mrb_func_t body, mrb_value data, mrb_bool *state) { struct protect_data protect_data = { body, data }; - return mrb_protect_raw(mrb, protect_body, &protect_data, state); + return mrb_protect_error(mrb, protect_body, &protect_data, state); } MRB_API mrb_value @@ -26,7 +26,7 @@ mrb_ensure(mrb_state *mrb, mrb_func_t body, mrb_value b_data, mrb_func_t ensure, int ai = mrb_gc_arena_save(mrb); struct protect_data protect_data = { body, b_data }; mrb_bool error; - mrb_value result = mrb_protect_raw(mrb, protect_body, &protect_data, &error); + mrb_value result = mrb_protect_error(mrb, protect_body, &protect_data, &error); ensure(mrb, e_data); mrb_gc_arena_restore(mrb, ai); mrb_gc_protect(mrb, result); @@ -50,7 +50,7 @@ mrb_rescue_exceptions(mrb_state *mrb, mrb_func_t body, mrb_value b_data, mrb_fun int ai = mrb_gc_arena_save(mrb); struct protect_data protect_data = { body, b_data }; mrb_bool error; - mrb_value result = mrb_protect_raw(mrb, protect_body, &protect_data, &error); + mrb_value result = mrb_protect_error(mrb, protect_body, &protect_data, &error); if (error) { mrb_bool error_matched = FALSE; for (mrb_int i = 0; i < len; ++i) { diff --git a/src/vm.c b/src/vm.c index 0665634ed..b1f23555d 100644 --- a/src/vm.c +++ b/src/vm.c @@ -307,7 +307,7 @@ cipop(mrb_state *mrb) } MRB_API mrb_value -mrb_protect_raw(mrb_state *mrb, mrb_protect_raw_func *body, void *userdata, mrb_bool *error) +mrb_protect_error(mrb_state *mrb, mrb_protect_error_func *body, void *userdata, mrb_bool *error) { struct mrb_jmpbuf *prev_jmp = mrb->jmp; struct mrb_jmpbuf c_jmp; -- cgit v1.2.3