git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62653 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2018-03-04 06:24:38 +00:00
Родитель ac44ae58c6
Коммит ae34216021
1 изменённых файлов: 3 добавлений и 4 удалений

7
vm.c
Просмотреть файл

@ -1808,8 +1808,8 @@ 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);
if (!mjit_enable_p || (result = mjit_exec(ec)) == Qundef)
result = vm_exec_core(ec, initial);
goto vm_loop_start; /* fallback to the VM */
}
else {
@ -1817,9 +1817,8 @@ vm_exec(rb_execution_context_t *ec, int mjit_enable_p)
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);
vm_loop_start:
if (result == Qundef)
result = vm_exec_core(ec, initial);
VM_ASSERT(ec->tag == &_tag);
/* when caught `throw`, `tag.state` is set. */
if ((state = _tag.state) == TAG_NONE) break;