From ed16535c73b9eb763e445e23489e7a73144f6f09 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Thu, 25 May 2017 14:13:54 +0900 Subject: Clear top level env in `mrb_top_run()`; fix #3643 --- src/vm.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/vm.c b/src/vm.c index 4d7fc9720..23e20b826 100644 --- a/src/vm.c +++ b/src/vm.c @@ -2740,7 +2740,11 @@ mrb_top_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int sta mrb_callinfo *ci; mrb_value v; - if (!mrb->c->cibase || mrb->c->ci == mrb->c->cibase) { + if (!mrb->c->cibase) { + return mrb_vm_run(mrb, proc, self, stack_keep); + } + if (mrb->c->ci == mrb->c->cibase) { + mrb->c->ci->env = NULL; return mrb_vm_run(mrb, proc, self, stack_keep); } ci = cipush(mrb); -- cgit v1.2.3