Add field_write_barrier when an method is defined.

This commit is contained in:
Masamitsu MURASE
2013-01-31 01:21:20 +09:00
parent 184a721ae6
commit a943942ca7
+2
View File
@@ -293,6 +293,7 @@ mrb_define_method_raw(mrb_state *mrb, struct RClass *c, mrb_sym mid, struct RPro
if (!h) h = c->mt = kh_init(mt, mrb);
k = kh_put(mt, h, mid);
kh_value(h, k) = p;
mrb_field_write_barrier(mrb, (struct RBasic *)c, (struct RBasic *)p);
}
void
@@ -303,6 +304,7 @@ mrb_define_method_id(mrb_state *mrb, struct RClass *c, mrb_sym mid, mrb_func_t f
p = mrb_proc_new_cfunc(mrb, func);
p->target_class = c;
mrb_define_method_raw(mrb, c, mid, p);
mrb_field_write_barrier(mrb, (struct RBasic *)c, (struct RBasic *)p);
}
void