From ca9e8d91e4651ccf62ebdd9a5bc5855a754af38a Mon Sep 17 00:00:00 2001 From: dearblue Date: Tue, 5 Dec 2023 22:03:38 +0900 Subject: [PATCH] Needs `cipop()` before crossing the C boundary fix #6108 --- src/vm.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/vm.c b/src/vm.c index 6e776f9de..6d8c74612 100644 --- a/src/vm.c +++ b/src/vm.c @@ -2395,10 +2395,8 @@ RETRY_TRY_BLOCK: if (mrb->c->ci == ci) { break; } - else if (mrb->c->ci->cci == CINFO_NONE) { - cipop(mrb); - } - else { + cipop(mrb); + if (mrb->c->ci[1].cci != CINFO_NONE) { mrb->exc = (struct RObject*)break_new(mrb, RBREAK_TAG_BREAK, proc, v); mrb_gc_arena_restore(mrb, ai); mrb->c->vmexec = FALSE;