Merge pull request #317 from masamitsu-murase/fix_struct_new_gc

Fix GC of struct
This commit is contained in:
Yukihiro "Matz" Matsumoto
2012-06-24 06:32:48 -07:00
+15
View File
@@ -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;
}