diff options
| -rw-r--r-- | mrbgems/mruby-eval/src/eval.c | 5 |
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++) { |
