diff options
| author | Masamitsu MURASE <[email protected]> | 2013-01-31 01:21:20 +0900 |
|---|---|---|
| committer | Masamitsu MURASE <[email protected]> | 2013-01-31 01:21:20 +0900 |
| commit | a943942ca747e994060c860497e2eb73b25337dc (patch) | |
| tree | 5611fc77c14e8a69adf50e5f2eb0087de8beb3a5 | |
| parent | 184a721ae643bc1140997f2691378423bf046487 (diff) | |
| download | mruby-a943942ca747e994060c860497e2eb73b25337dc.tar.gz mruby-a943942ca747e994060c860497e2eb73b25337dc.zip | |
Add field_write_barrier when an method is defined.
| -rw-r--r-- | src/class.c | 2 |
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 |
