diff options
author | 卜部昌平 <[email protected]> | 2020-06-15 12:01:50 +0900 |
---|---|---|
committer | 卜部昌平 <[email protected]> | 2020-06-29 11:05:41 +0900 |
commit | 13bdbfcecbe7652c4c8315d1c615e205b83123e8 (patch) | |
tree | 3804d14099dbebe7115be4bdf01f1f5c197d768b /eval.c | |
parent | 0b1b73451528d946060f4876aa38fc3278899deb (diff) |
setup_exception: do not goto into a branch
I'm not necessarily against every goto in general, but jumping into a
branch is definitely a bad idea. Better refactor.
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/3247
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 11 |
1 files changed, 7 insertions, 4 deletions
@@ -641,16 +641,19 @@ setup_exception(rb_execution_context_t *ec, int tag, volatile VALUE mesg, VALUE } if (rb_ec_set_raised(ec)) { - fatal: - ec->errinfo = exception_error; - rb_ec_reset_raised(ec); - EC_JUMP_TAG(ec, TAG_FATAL); + goto fatal; } if (tag != TAG_FATAL) { RUBY_DTRACE_HOOK(RAISE, rb_obj_classname(ec->errinfo)); EXEC_EVENT_HOOK(ec, RUBY_EVENT_RAISE, ec->cfp->self, 0, 0, 0, mesg); } + return; + + fatal: + ec->errinfo = exception_error; + rb_ec_reset_raised(ec); + EC_JUMP_TAG(ec, TAG_FATAL); } /*! \private */ |