diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2021-04-22 16:46:16 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2021-04-22 17:01:33 +0900 |
| commit | 1a82bab1b04a4e55cd802af2b54d84a1ac4c5a79 (patch) | |
| tree | a3cd232470d4b93cda7dd53328717a70cf635230 | |
| parent | 91c4ac8d664a3566f7473a58c7f3421ce878198c (diff) | |
| download | mruby-1a82bab1b04a4e55cd802af2b54d84a1ac4c5a79.tar.gz mruby-1a82bab1b04a4e55cd802af2b54d84a1ac4c5a79.zip | |
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
| -rw-r--r-- | include/mruby/error.h | 15 | ||||
| -rw-r--r-- | mrbgems/mruby-error/src/exception.c | 6 | ||||
| -rw-r--r-- | 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) { @@ -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; |
