mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
break in blocks cannot cross C function boundaries; fix #2298
This commit is contained in:
@@ -1481,7 +1481,15 @@ RETRY_TRY_BLOCK:
|
||||
mrb->c = c->prev;
|
||||
c->prev = NULL;
|
||||
}
|
||||
ci = mrb->c->ci = mrb->c->cibase + proc->env->cioff + 1;
|
||||
ci = mrb->c->ci;
|
||||
mrb->c->ci = mrb->c->cibase + proc->env->cioff + 1;
|
||||
while (ci > mrb->c->ci) {
|
||||
if (ci[-1].acc == CI_ACC_SKIP) {
|
||||
mrb->c->ci = ci;
|
||||
break;
|
||||
}
|
||||
ci--;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
/* cannot happen */
|
||||
|
||||
Reference in New Issue
Block a user