summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/vm.c6
1 files changed, 5 insertions, 1 deletions
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);