diff options
Diffstat (limited to 'vm.c')
-rw-r--r-- | vm.c | 21 |
1 files changed, 11 insertions, 10 deletions
@@ -1794,8 +1794,8 @@ hook_before_rewind(rb_execution_context_t *ec, const rb_control_frame_t *cfp, in */ static inline VALUE -handle_exception(rb_execution_context_t *ec, enum ruby_tag_type state, - VALUE errinfo, VALUE *initial); +vm_exce_handle_exception(rb_execution_context_t *ec, enum ruby_tag_type state, + VALUE errinfo, VALUE *initial); MJIT_FUNC_EXPORTED VALUE vm_exec(rb_execution_context_t *ec, int mjit_enable_p) @@ -1808,16 +1808,17 @@ vm_exec(rb_execution_context_t *ec, int mjit_enable_p) _tag.retval = Qnil; if ((state = EC_EXEC_TAG()) == TAG_NONE) { - if (!mjit_enable_p || (result = mjit_exec(ec)) == Qundef) + if (!mjit_enable_p || (result = mjit_exec(ec)) == Qundef) { result = vm_exec_core(ec, initial); - goto vm_loop_start; /* fallback to the VM */ + } + goto vm_loop_start; /* fallback to the VM */ } else { result = ec->errinfo; - rb_ec_raised_reset(ec, RAISED_STACKOVERFLOW); - while ((result = handle_exception(ec, state, result, &initial)) == Qundef) { - /* caught a jump, exec the handler */ - result = vm_exec_core(ec, initial); + rb_ec_raised_reset(ec, RAISED_STACKOVERFLOW); + while ((result = vm_exce_handle_exception(ec, state, result, &initial)) == Qundef) { + /* caught a jump, exec the handler */ + result = vm_exec_core(ec, initial); vm_loop_start: VM_ASSERT(ec->tag == &_tag); /* when caught `throw`, `tag.state` is set. */ @@ -1830,8 +1831,8 @@ vm_exec(rb_execution_context_t *ec, int mjit_enable_p) } static inline VALUE -handle_exception(rb_execution_context_t *ec, enum ruby_tag_type state, - VALUE errinfo, VALUE *initial) +vm_exce_handle_exception(rb_execution_context_t *ec, enum ruby_tag_type state, + VALUE errinfo, VALUE *initial) { struct vm_throw_data *err = (struct vm_throw_data *)errinfo; |