From 8ce1ea843738170d53cf627b7b7ff09e55076b85 Mon Sep 17 00:00:00 2001 From: Masamitsu MURASE Date: Wed, 30 Jan 2013 20:46:37 +0900 Subject: Protect irep of ensure. --- src/vm.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/vm.c') diff --git a/src/vm.c b/src/vm.c index ca31f6675..a2df8abdf 100644 --- a/src/vm.c +++ b/src/vm.c @@ -1236,6 +1236,12 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self) acc = ci->acc; pc = ci->pc; regs = mrb->stack = mrb->stbase + ci->stackidx; + { + int idx = eidx; + while (idx > mrb->ci->eidx) { + mrb_gc_protect(mrb, mrb_obj_value(mrb->ensure[--idx])); + } + } while (eidx > mrb->ci->eidx) { ecall(mrb, --eidx); } -- cgit v1.2.3