summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorTomoyuki Sahara <[email protected]>2013-04-17 13:08:54 +0900
committerTomoyuki Sahara <[email protected]>2013-04-17 13:08:54 +0900
commit0f8969041a7b4d8af5b248c1f04d6b56e337ed4a (patch)
treed407f44464ba7563a27a5164bf6e4980cc0d13e9 /src
parent4b24ee189ef5b2190562ce4c67d48c3170bdc2a2 (diff)
downloadmruby-0f8969041a7b4d8af5b248c1f04d6b56e337ed4a.tar.gz
mruby-0f8969041a7b4d8af5b248c1f04d6b56e337ed4a.zip
rollback stack before executing ensure clause.
Diffstat (limited to 'src')
-rw-r--r--src/vm.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/vm.c b/src/vm.c
index 9224c7a40..e3c53d4a2 100644
--- a/src/vm.c
+++ b/src/vm.c
@@ -1219,9 +1219,9 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self)
while (ci[0].ridx == ci[-1].ridx) {
cipop(mrb);
ci = mrb->ci;
+ mrb->stack = mrb->stbase + ci[1].stackidx;
if (ci[1].acc < 0 && prev_jmp) {
mrb->jmp = prev_jmp;
- mrb->stack = mrb->stbase + ci[1].stackidx;
longjmp(*(jmp_buf*)mrb->jmp, 1);
}
while (eidx > mrb->ci->eidx) {