From 5513fcee22ceab9293bff7815f961616c1fa3e83 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Sat, 22 Apr 2017 14:35:36 +0900 Subject: Keep reference to mrb_context from env; fix #3619 --- mrbgems/mruby-eval/src/eval.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'mrbgems/mruby-eval/src/eval.c') diff --git a/mrbgems/mruby-eval/src/eval.c b/mrbgems/mruby-eval/src/eval.c index 5e8952f0d..00cb2f15c 100644 --- a/mrbgems/mruby-eval/src/eval.c +++ b/mrbgems/mruby-eval/src/eval.c @@ -30,7 +30,7 @@ get_closure_irep(mrb_state *mrb, int level) if (!e) return NULL; if (!MRB_ENV_STACK_SHARED_P(e)) return NULL; - + c = e->cxt.c; proc = c->cibase[e->cioff].proc; if (!proc || MRB_PROC_CFUNC_P(proc)) { @@ -196,7 +196,7 @@ create_proc_from_string(mrb_state *mrb, char *s, int len, mrb_value binding, con e = c->ci[-1].proc->env; if (!e) e = c->ci[-1].env; e = (struct REnv*)mrb_obj_alloc(mrb, MRB_TT_ENV, (struct RClass*)e); - e->mid = c->ci[-1].mid; + e->cxt.c = c; e->cioff = c->ci - c->cibase - 1; e->stack = c->ci->stackent; MRB_SET_ENV_STACK_LEN(e, c->ci[-1].proc->body.irep->nlocals); -- cgit v1.2.3