summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/class.c5
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