diff options
| author | Tomoyuki Sahara <[email protected]> | 2013-04-17 13:08:54 +0900 |
|---|---|---|
| committer | Tomoyuki Sahara <[email protected]> | 2013-04-17 13:08:54 +0900 |
| commit | 0f8969041a7b4d8af5b248c1f04d6b56e337ed4a (patch) | |
| tree | d407f44464ba7563a27a5164bf6e4980cc0d13e9 /src | |
| parent | 4b24ee189ef5b2190562ce4c67d48c3170bdc2a2 (diff) | |
| download | mruby-0f8969041a7b4d8af5b248c1f04d6b56e337ed4a.tar.gz mruby-0f8969041a7b4d8af5b248c1f04d6b56e337ed4a.zip | |
rollback stack before executing ensure clause.
Diffstat (limited to 'src')
| -rw-r--r-- | src/vm.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -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) { |
