summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2013-03-31 00:44:56 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2013-03-31 00:44:56 +0900
commitdd56b93639ed0d045fd237aa59c2444901aae08c (patch)
treeabbe62513fb55a28f720652f56169e6a1db53438 /src
parent8a2ecba0e4c6d6fee0c505a4f0b6acf74a597505 (diff)
downloadmruby-dd56b93639ed0d045fd237aa59c2444901aae08c.tar.gz
mruby-dd56b93639ed0d045fd237aa59c2444901aae08c.zip
should have rewinded stack on exceptions; close #1113
Diffstat (limited to 'src')
-rw-r--r--src/vm.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/vm.c b/src/vm.c
index 596e34961..b81ae249e 100644
--- a/src/vm.c
+++ b/src/vm.c
@@ -1207,6 +1207,7 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self)
ci = mrb->ci;
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) {