diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-11-07 08:16:41 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-11-07 08:16:41 +0900 |
| commit | 465f633446ed3c1077aa3bb86d250a2ad58711b2 (patch) | |
| tree | 43ee31bf45f64d276c2082a8da5ed7c795c51842 | |
| parent | d8913dae3fc3d61f21253326e0c27e10e71d95dc (diff) | |
| download | mruby-465f633446ed3c1077aa3bb86d250a2ad58711b2.tar.gz mruby-465f633446ed3c1077aa3bb86d250a2ad58711b2.zip | |
create Proc object before releasing memory pool
| -rw-r--r-- | src/codegen.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/codegen.c b/src/codegen.c index 21714d131..cf844b9ab 100644 --- a/src/codegen.c +++ b/src/codegen.c @@ -2891,6 +2891,7 @@ struct RProc* mrb_generate_code(mrb_state *mrb, parser_state *p) { codegen_scope *scope = scope_new(mrb, 0, 0); + struct RProc *proc; if (!scope) { return NULL; @@ -2902,8 +2903,9 @@ mrb_generate_code(mrb_state *mrb, parser_state *p) if (setjmp(scope->jmp) == 0) { // prepare irep codegen(scope, p->tree, NOVAL); + proc = mrb_proc_new(mrb, scope->irep); mrb_pool_close(scope->mpool); - return mrb_proc_new(mrb, scope->irep); + return proc; } else { return NULL; |
