summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorMasamitsu MURASE <[email protected]>2013-01-31 01:21:20 +0900
committerMasamitsu MURASE <[email protected]>2013-01-31 01:21:20 +0900
commita943942ca747e994060c860497e2eb73b25337dc (patch)
tree5611fc77c14e8a69adf50e5f2eb0087de8beb3a5 /src
parent184a721ae643bc1140997f2691378423bf046487 (diff)
downloadmruby-a943942ca747e994060c860497e2eb73b25337dc.tar.gz
mruby-a943942ca747e994060c860497e2eb73b25337dc.zip
Add field_write_barrier when an method is defined.
Diffstat (limited to 'src')
-rw-r--r--src/class.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/class.c b/src/class.c
index 530fc5ce4..0043d95b4 100644
--- a/src/class.c
+++ b/src/class.c
@@ -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