summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--mrbgems/mruby-eval/src/eval.c5
1 files changed, 4 insertions, 1 deletions
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++) {