From 650cfb9e4cf52b9bf9ebfb9f1a6259a3d7c8cc3d Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Tue, 30 May 2017 11:06:00 +0900 Subject: Exceptions in fibers must be re-raised via `#resume`; fix #3675 --- src/vm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/vm.c b/src/vm.c index 2dc51201f..a676cb58a 100644 --- a/src/vm.c +++ b/src/vm.c @@ -1759,7 +1759,7 @@ RETRY_TRY_BLOCK: ci0 = ci = mrb->c->ci; eidx = ci->eidx; if (ci == mrb->c->cibase) { - if (ci->ridx == 0) goto L_STOP; + if (ci->ridx == 0) goto L_FTOP; goto L_RESCUE; } stk = mrb->c->stack; @@ -1774,6 +1774,7 @@ RETRY_TRY_BLOCK: if (ci == mrb->c->cibase) { mrb->c->stack = stk; if (ci->ridx == 0) { + L_FTOP: /* fiber top */ if (mrb->c == mrb->root_c) { mrb->c->stack = mrb->c->stbase; goto L_STOP; -- cgit v1.2.3