From 0b8d8dd379fc5df137477019f0ae355d7a01735f Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Sat, 5 Nov 2016 02:52:34 +0900 Subject: associate REnv to the executing block; fix #3214 --- src/vm.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/vm.c b/src/vm.c index 01ae0326c..fcc69a1f9 100644 --- a/src/vm.c +++ b/src/vm.c @@ -2298,6 +2298,9 @@ RETRY_TRY_BLOCK: mrb_value recv = regs[a]; struct RProc *p; + /* prepare closure */ + p = mrb_closure_new(mrb, irep->reps[GETARG_Bx(i)]); + /* prepare stack */ ci = cipush(mrb); ci->pc = pc + 1; @@ -2310,7 +2313,7 @@ RETRY_TRY_BLOCK: /* prepare stack */ mrb->c->stack += a; - p = mrb_proc_new(mrb, irep->reps[GETARG_Bx(i)]); + /* setup closure */ p->target_class = ci->target_class; ci->proc = p; -- cgit v1.2.3