From 3ff5081650cd510186a1e0105641dd10e8b4e7c8 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Fri, 17 Oct 2014 15:48:58 +0900 Subject: context proc may be cfunc; fix #2609 --- mrbgems/mruby-eval/src/eval.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mrbgems/mruby-eval/src/eval.c b/mrbgems/mruby-eval/src/eval.c index 5f6e03ed7..e97e580fa 100644 --- a/mrbgems/mruby-eval/src/eval.c +++ b/mrbgems/mruby-eval/src/eval.c @@ -23,6 +23,9 @@ get_closure_irep(mrb_state *mrb, int level) if (!e) return NULL; proc = mrb->c->cibase[e->cioff].proc; + if (MRB_PROC_CFUNC_P(proc)) { + return NULL; + } return proc->body.irep; } @@ -34,7 +37,7 @@ search_variable(mrb_state *mrb, mrb_sym vsym, int bnest) int pos; for (level = 0; (virep = get_closure_irep(mrb, level)); level++) { - if (virep->lv == NULL) { + if (!virep || virep->lv == NULL) { continue; } for (pos = 0; pos < virep->nlocals - 1; pos++) { -- cgit v1.2.3