summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-eval/src/eval.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2017-04-22 14:35:36 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2017-04-22 14:35:36 +0900
commit5513fcee22ceab9293bff7815f961616c1fa3e83 (patch)
tree917ae5efe1eff1f8b56342ba822137f9f450419c /mrbgems/mruby-eval/src/eval.c
parent3b0a36d3993ff6c553b171c8bcb0e703a471ef5e (diff)
downloadmruby-5513fcee22ceab9293bff7815f961616c1fa3e83.tar.gz
mruby-5513fcee22ceab9293bff7815f961616c1fa3e83.zip
Keep reference to mrb_context from env; fix #3619
Diffstat (limited to 'mrbgems/mruby-eval/src/eval.c')
-rw-r--r--mrbgems/mruby-eval/src/eval.c4
1 files changed, 2 insertions, 2 deletions
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);