diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-10-17 15:48:58 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-10-17 15:48:58 +0900 |
| commit | 3ff5081650cd510186a1e0105641dd10e8b4e7c8 (patch) | |
| tree | 4df075c1dde2334bc29ff6a8660a7030989dc6da /mrbgems/mruby-eval | |
| parent | c5a23e6a0dd92edc239401b18f43d2268e290784 (diff) | |
| download | mruby-3ff5081650cd510186a1e0105641dd10e8b4e7c8.tar.gz mruby-3ff5081650cd510186a1e0105641dd10e8b4e7c8.zip | |
context proc may be cfunc; fix #2609
Diffstat (limited to 'mrbgems/mruby-eval')
| -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++) { |
