diff options
| author | Yukihiro Matsumoto <[email protected]> | 2012-08-03 19:55:01 +0900 |
|---|---|---|
| committer | Yukihiro Matsumoto <[email protected]> | 2012-08-03 19:55:01 +0900 |
| commit | f121558f9379c92a20051e3d87489d4c8125e9f9 (patch) | |
| tree | b8667c60b20c4f10a97b8b85526fee5e8dd59364 | |
| parent | 55192a82b73c536b66024bb55e92e97615ac0da3 (diff) | |
| download | mruby-f121558f9379c92a20051e3d87489d4c8125e9f9.tar.gz mruby-f121558f9379c92a20051e3d87489d4c8125e9f9.zip | |
mrb_define_method_vm should update target_class
| -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 |
