diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2012-06-24 06:32:48 -0700 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2012-06-24 06:32:48 -0700 |
| commit | bf747efdd107034f9032bc5c8c658887e8bd0239 (patch) | |
| tree | 72125fbc017913e1356c1b60e34cedf9cab5292c /src | |
| parent | ccde2d3be08d215f235e7a1820ab98ddb769abe6 (diff) | |
| parent | e53eea76eb1da7cb9b5b2da52e3244a0f521972a (diff) | |
| download | mruby-bf747efdd107034f9032bc5c8c658887e8bd0239.tar.gz mruby-bf747efdd107034f9032bc5c8c658887e8bd0239.zip | |
Merge pull request #317 from masamitsu-murase/fix_struct_new_gc
Fix GC of struct
Diffstat (limited to 'src')
| -rw-r--r-- | src/gc.c | 15 |
1 files changed, 15 insertions, 0 deletions
@@ -514,6 +514,12 @@ obj_free(mrb_state *mrb, struct RBasic *obj) mrb_free(mrb, ((struct RRange*)obj)->edges); break; +#ifdef ENABLE_STRUCT + case MRB_TT_STRUCT: + mrb_free(mrb, ((struct RStruct*)obj)->ptr); + break; +#endif + case MRB_TT_DATA: { struct RData *d = (struct RData*)obj; @@ -632,6 +638,15 @@ gc_gray_mark(mrb_state *mrb, struct RBasic *obj) break; #endif +#ifdef ENABLE_STRUCT + case MRB_TT_STRUCT: + { + struct RStruct *s = (struct RStruct*)obj; + children += s->len; + } + break; +#endif + default: break; } |
