summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorYukihiro Matsumoto <[email protected]>2012-08-03 19:55:01 +0900
committerYukihiro Matsumoto <[email protected]>2012-08-03 19:55:01 +0900
commitf121558f9379c92a20051e3d87489d4c8125e9f9 (patch)
treeb8667c60b20c4f10a97b8b85526fee5e8dd59364 /src
parent55192a82b73c536b66024bb55e92e97615ac0da3 (diff)
downloadmruby-f121558f9379c92a20051e3d87489d4c8125e9f9.tar.gz
mruby-f121558f9379c92a20051e3d87489d4c8125e9f9.zip
mrb_define_method_vm should update target_class
Diffstat (limited to 'src')
-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