Commit 8dc533ed authored by Yukihiro Matsumoto's avatar Yukihiro Matsumoto

Merge branch 'master' of github.com:mruby/mruby

parents 19638ded 52b6d1c0
...@@ -1050,6 +1050,9 @@ mrb_class_new(mrb_state *mrb, struct RClass *super) ...@@ -1050,6 +1050,9 @@ mrb_class_new(mrb_state *mrb, struct RClass *super)
mrb_check_inheritable(mrb, super); mrb_check_inheritable(mrb, super);
} }
c = boot_defclass(mrb, super); c = boot_defclass(mrb, super);
if (super){
MRB_SET_INSTANCE_TT(c, MRB_INSTANCE_TT(super));
}
make_metaclass(mrb, c); make_metaclass(mrb, c);
return c; return c;
......
...@@ -514,6 +514,12 @@ obj_free(mrb_state *mrb, struct RBasic *obj) ...@@ -514,6 +514,12 @@ obj_free(mrb_state *mrb, struct RBasic *obj)
mrb_free(mrb, ((struct RRange*)obj)->edges); mrb_free(mrb, ((struct RRange*)obj)->edges);
break; break;
#ifdef ENABLE_STRUCT
case MRB_TT_STRUCT:
mrb_free(mrb, ((struct RStruct*)obj)->ptr);
break;
#endif
case MRB_TT_DATA: case MRB_TT_DATA:
{ {
struct RData *d = (struct RData*)obj; struct RData *d = (struct RData*)obj;
...@@ -632,6 +638,15 @@ gc_gray_mark(mrb_state *mrb, struct RBasic *obj) ...@@ -632,6 +638,15 @@ gc_gray_mark(mrb_state *mrb, struct RBasic *obj)
break; break;
#endif #endif
#ifdef ENABLE_STRUCT
case MRB_TT_STRUCT:
{
struct RStruct *s = (struct RStruct*)obj;
children += s->len;
}
break;
#endif
default: default:
break; break;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment