create Proc object before releasing memory pool

This commit is contained in:
Yukihiro "Matz" Matsumoto
2013-11-07 08:16:41 +09:00
parent d8913dae3f
commit 465f633446
+3 -1
View File
@@ -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;