summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2014-01-05 19:18:13 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2014-01-05 19:18:13 +0900
commitf5cca078e3193f1fff57545defa36d1f8ee8862f (patch)
tree685f3acc784a435859d115c79731eb7ecedf2fc8 /src
parent0e23038a60d8656d8d92291efdeb418f9b166c09 (diff)
downloadmruby-f5cca078e3193f1fff57545defa36d1f8ee8862f.tar.gz
mruby-f5cca078e3193f1fff57545defa36d1f8ee8862f.zip
avoid decrimenting eidx out of ecall()
Diffstat (limited to 'src')
-rw-r--r--src/vm.c6
1 files changed, 3 insertions, 3 deletions
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; n<a && ci->eidx > ci[-1].eidx; n++) {
- ecall(mrb, --ci->eidx);
+ for (n=0; n<a && eidx > ci[-1].eidx; n++) {
+ ecall(mrb, --eidx);
ARENA_RESTORE(mrb, ai);
}
NEXT;