summaryrefslogtreecommitdiffhomepage
path: root/src/state.c
diff options
context:
space:
mode:
authorYukihiro Matsumoto <[email protected]>2012-10-17 02:57:40 +0900
committerYukihiro Matsumoto <[email protected]>2012-10-17 02:57:40 +0900
commit70abbb423a1b215563e6e4e58bfb76c02e59125d (patch)
tree06e8d2c83e06f12a8c7fbfe0356257578b666a5a /src/state.c
parent265fa03d2c6863bf3425bfe00738ad15d62ba587 (diff)
downloadmruby-70abbb423a1b215563e6e4e58bfb76c02e59125d.tar.gz
mruby-70abbb423a1b215563e6e4e58bfb76c02e59125d.zip
should not free() static iseq from cdump
Diffstat (limited to 'src/state.c')
-rw-r--r--src/state.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/state.c b/src/state.c
index 40d9bfc45..991be310e 100644
--- a/src/state.c
+++ b/src/state.c
@@ -92,7 +92,8 @@ mrb_close(mrb_state *mrb)
mrb_free(mrb, mrb->stbase);
mrb_free(mrb, mrb->cibase);
for (i=0; i<mrb->irep_len; i++) {
- mrb_free(mrb, mrb->irep[i]->iseq);
+ if (!(mrb->irep[i]->flags & MRB_ISEQ_NO_FREE))
+ mrb_free(mrb, mrb->irep[i]->iseq);
mrb_free(mrb, mrb->irep[i]->pool);
mrb_free(mrb, mrb->irep[i]->syms);
mrb_free(mrb, mrb->irep[i]->lines);