diff options
| author | take_cheeze <[email protected]> | 2014-07-09 22:02:33 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-07-12 20:36:44 +0900 |
| commit | d1eea450bf54b48bdd388794532f0437e352659c (patch) | |
| tree | adcb141ba8400a4e016aa8a56a9f6eaf681e9be8 /mrbgems/mruby-eval/src/eval.c | |
| parent | 42110dcee1733c39129dbbbfe619943a9da158a8 (diff) | |
| download | mruby-d1eea450bf54b48bdd388794532f0437e352659c.tar.gz mruby-d1eea450bf54b48bdd388794532f0437e352659c.zip | |
Use `mrb_parse_nstring` instead in eval.
Diffstat (limited to 'mrbgems/mruby-eval/src/eval.c')
| -rw-r--r-- | mrbgems/mruby-eval/src/eval.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/mrbgems/mruby-eval/src/eval.c b/mrbgems/mruby-eval/src/eval.c index b5cb833c2..3036837d5 100644 --- a/mrbgems/mruby-eval/src/eval.c +++ b/mrbgems/mruby-eval/src/eval.c @@ -113,10 +113,12 @@ create_proc_from_string(mrb_state *mrb, char *s, int len, mrb_value binding, cha mrbc_filename(mrb, cxt, file); } - p = mrb_parser_new(mrb); - p->s = s; - p->send = s + len; - mrb_parser_parse(p, cxt); + p = mrb_parse_nstring(mrb, s, len, cxt); + + /* only occur when memory ran out */ + if (!p) { + mrb_raise(mrb, E_RUNTIME_ERROR, "Failed to create parser state."); + } if (0 < p->nerr) { /* parse error */ |
