summaryrefslogtreecommitdiffhomepage
path: root/src/vm.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2017-06-20 16:18:07 +0900
committerGitHub <[email protected]>2017-06-20 16:18:07 +0900
commit39779b339e12c81d2fd9dcc5d0a9c40bed965430 (patch)
treed27c3f0196d972cc4f859487b2a390e673d8bd3f /src/vm.c
parent615e7e44e3bd277bd0f73410dc253aa6d4e2bd34 (diff)
parent0fa94f9ead4c84b8260b5a634ac247defc88d0da (diff)
downloadmruby-39779b339e12c81d2fd9dcc5d0a9c40bed965430.tar.gz
mruby-39779b339e12c81d2fd9dcc5d0a9c40bed965430.zip
Merge pull request #3718 from miura1729/original
#3711 fix
Diffstat (limited to 'src/vm.c')
-rw-r--r--src/vm.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/vm.c b/src/vm.c
index c34737789..324a90a41 100644
--- a/src/vm.c
+++ b/src/vm.c
@@ -1894,9 +1894,13 @@ RETRY_TRY_BLOCK:
}
/* call ensure only when we skip this callinfo */
if (ci[0].ridx == ci[-1].ridx) {
+ mrb_value *org_stbase = mrb->c->stbase;
while (mrb->c->eidx > ci->epos) {
ecall(mrb, --mrb->c->eidx);
ci = mrb->c->ci;
+ if (org_stbase != mrb->c->stbase) {
+ stk = mrb->c->stack;
+ }
}
}
}