From a55b237d89e1397da8dc879b24c1a34e80ad4e91 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Mon, 10 Apr 2017 20:39:49 +0900 Subject: Callinfo may be changed in `ecall()`; fix #3589 --- src/vm.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/vm.c b/src/vm.c index 9c4277725..1b967ef7e 100644 --- a/src/vm.c +++ b/src/vm.c @@ -1161,6 +1161,7 @@ RETRY_TRY_BLOCK: for (n=0; nc->cibase || eidx > ci[-1].eidx); n++) { ecall(mrb, --eidx); + ci = mrb->c->ci; ARENA_RESTORE(mrb, ai); } NEXT; @@ -1706,6 +1707,7 @@ RETRY_TRY_BLOCK: if (ci[0].ridx == ci[-1].ridx) { while (eidx > ci[-1].eidx) { ecall(mrb, --eidx); + ci = mrb->c->ci; } } } -- cgit v1.2.3