From 0f8969041a7b4d8af5b248c1f04d6b56e337ed4a Mon Sep 17 00:00:00 2001 From: Tomoyuki Sahara Date: Wed, 17 Apr 2013 13:08:54 +0900 Subject: rollback stack before executing ensure clause. --- src/vm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/vm.c') 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) { -- cgit v1.2.3