From 87cc0344cde0e3ccafa162bdbcf8a6ffac61e6ba Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Thu, 1 Jun 2017 19:35:15 +0900 Subject: Call `stack_clear()` after `stack_extend()`; fix #3682 --- 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 18bd57ed1..9a30c4d16 100644 --- a/src/vm.c +++ b/src/vm.c @@ -853,10 +853,10 @@ mrb_vm_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int stac } if (stack_keep > nregs) nregs = stack_keep; + stack_extend(mrb, nregs); if (nregs > stack_keep) { stack_clear(c->stack + stack_keep, nregs - stack_keep); } - stack_extend(mrb, nregs); c->stack[0] = self; result = mrb_vm_exec(mrb, proc, irep->iseq); if (c->ci - c->cibase > cioff) { -- cgit v1.2.3