From 3718599e8623387adf79b47085b4f657ff3f6922 Mon Sep 17 00:00:00 2001 From: Yuichiro MASUI Date: Tue, 7 Aug 2012 04:04:22 +0900 Subject: Fixed memory leak when calling stack_extend in m->body.func --- src/vm.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/vm.c b/src/vm.c index cbea3ee77..ac6dc9f1a 100644 --- a/src/vm.c +++ b/src/vm.c @@ -689,7 +689,7 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self) struct RProc *m; struct RClass *c; mrb_callinfo *ci; - mrb_value recv; + mrb_value recv, result; mrb_sym mid = syms[GETARG_B(i)]; recv = regs[a]; @@ -731,7 +731,8 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self) else { ci->nregs = n + 2; } - mrb->stack[0] = m->body.func(mrb, recv); + result = m->body.func(mrb, recv); + mrb->stack[0] = result; mrb->arena_idx = ai; if (mrb->exc) goto L_RAISE; /* pop stackpos */ -- cgit v1.2.3