diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-05-30 11:06:00 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-05-30 11:06:00 +0900 |
| commit | 650cfb9e4cf52b9bf9ebfb9f1a6259a3d7c8cc3d (patch) | |
| tree | 6b64692ceb8d702e3d368c91a21375ee62f4b83d /src | |
| parent | cbd4aae41cf13f09a75d21a77cf03d1c903b69d6 (diff) | |
| download | mruby-650cfb9e4cf52b9bf9ebfb9f1a6259a3d7c8cc3d.tar.gz mruby-650cfb9e4cf52b9bf9ebfb9f1a6259a3d7c8cc3d.zip | |
Exceptions in fibers must be re-raised via `#resume`; fix #3675
Diffstat (limited to 'src')
| -rw-r--r-- | src/vm.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -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; |
