diff options
Diffstat (limited to 'src/class.c')
| -rw-r--r-- | src/class.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/class.c b/src/class.c index 77a7050da..30faa85e9 100644 --- a/src/class.c +++ b/src/class.c @@ -436,7 +436,6 @@ mrb_define_method_raw(mrb_state *mrb, struct RClass *c, mrb_sym mid, struct RPro k = kh_put(mt, mrb, h, mid); kh_value(h, k) = p; if (p) { - p->flags |= MRB_PROC_SCOPE; p->c = NULL; mrb_field_write_barrier(mrb, (struct RBasic*)c, (struct RBasic*)p); MRB_PROC_SET_TARGET_CLASS(p, c); @@ -453,6 +452,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); MRB_PROC_SET_TARGET_CLASS(p, c); + p->flags |= MRB_PROC_SCOPE; mrb_define_method_raw(mrb, c, mid, p); mrb_gc_arena_restore(mrb, ai); } |
