From f5cca078e3193f1fff57545defa36d1f8ee8862f Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Sun, 5 Jan 2014 19:18:13 +0900 Subject: avoid decrimenting eidx out of ecall() --- src/vm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/vm.c b/src/vm.c index 8e2d03f88..a752c698b 100644 --- a/src/vm.c +++ b/src/vm.c @@ -855,12 +855,12 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int CASE(OP_EPOP) { /* A A.times{ensure_pop().call} */ - int n; int a = GETARG_A(i); mrb_callinfo *ci = mrb->c->ci; + int n, eidx = ci->eidx; - for (n=0; neidx > ci[-1].eidx; n++) { - ecall(mrb, --ci->eidx); + for (n=0; n ci[-1].eidx; n++) { + ecall(mrb, --eidx); ARENA_RESTORE(mrb, ai); } NEXT; -- cgit v1.2.3