From 7fbbd7ab9fdeb9eafe6a37fa7f16b60e41e21ad4 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Wed, 20 Dec 2017 19:59:15 +0900 Subject: Should not overwrite `ci->target_class` in `mrb_exec_irep()`. For example, the following code behaved wrong: ```ruby Object.instance_exec(1,2,3){|*a| def foo 42 end } p foo() ``` --- src/vm.c | 1 - 1 file changed, 1 deletion(-) (limited to 'src') diff --git a/src/vm.c b/src/vm.c index bf33cce51..5c6b53c2f 100644 --- a/src/vm.c +++ b/src/vm.c @@ -511,7 +511,6 @@ mrb_exec_irep(mrb_state *mrb, mrb_value self, struct RProc *p) mrb->c->stack[0] = self; ci->proc = p; - ci->target_class = MRB_PROC_TARGET_CLASS(p); if (MRB_PROC_CFUNC_P(p)) { return MRB_PROC_CFUNC(p)(mrb, self); } -- cgit v1.2.3