diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/class.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/class.c b/src/class.c index d6c7a92fb..13c2d0469 100644 --- a/src/class.c +++ b/src/class.c @@ -328,10 +328,13 @@ mrb_define_method_vm(mrb_state *mrb, struct RClass *c, mrb_sym name, mrb_value b { khash_t(mt) *h = c->mt; khiter_t k; + struct RProc *p; if (!h) h = c->mt = kh_init(mt, mrb); k = kh_put(mt, h, name); - kh_value(h, k) = mrb_proc_ptr(body); + p = mrb_proc_ptr(body); + if (p) p->target_class = c; + kh_value(h, k) = p; } static mrb_value |
