diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-11-08 20:39:50 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-11-08 20:39:50 +0900 |
| commit | de790bdc2785ee36730563982afc45480f6c0f42 (patch) | |
| tree | efc81547c8a6190a00bbd0fce704a02c8e373c3a /src/gc.c | |
| parent | cba07b02755711630e418fcf361d94cf47bb6730 (diff) | |
| download | mruby-de790bdc2785ee36730563982afc45480f6c0f42.tar.gz mruby-de790bdc2785ee36730563982afc45480f6c0f42.zip | |
allow irep to be GCed
Diffstat (limited to 'src/gc.c')
| -rw-r--r-- | src/gc.c | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -640,6 +640,16 @@ obj_free(mrb_state *mrb, struct RBasic *obj) mrb_gc_free_str(mrb, (struct RString*)obj); break; + case MRB_TT_PROC: + { + struct RProc *p = (struct RProc*)obj; + + if (!MRB_PROC_CFUNC_P(p) && p->body.irep) { + mrb_irep_decref(mrb, p->body.irep); + } + } + break; + case MRB_TT_RANGE: mrb_free(mrb, ((struct RRange*)obj)->edges); break; |
