diff options
| author | Masamitsu MURASE <[email protected]> | 2012-07-18 02:17:29 +0900 |
|---|---|---|
| committer | Masamitsu MURASE <[email protected]> | 2012-07-18 02:17:29 +0900 |
| commit | a0c4f8558b15f1b5de0cb22f2d45d215f15ecd08 (patch) | |
| tree | 83d9c279722659017bfd81127d2782aec7615c23 | |
| parent | a18699a80c14e0e44e904b7537d6d57463b6f39c (diff) | |
| download | mruby-a0c4f8558b15f1b5de0cb22f2d45d215f15ecd08.tar.gz mruby-a0c4f8558b15f1b5de0cb22f2d45d215f15ecd08.zip | |
Kernel#respond_to? should return false if the method is undefined.
| -rw-r--r-- | src/class.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/class.c b/src/class.c index d0063529d..8a58eb70e 100644 --- a/src/class.c +++ b/src/class.c @@ -1052,8 +1052,14 @@ mrb_obj_respond_to(struct RClass* c, mrb_sym mid) if (h) { k = kh_get(mt, h, mid); - if (k != kh_end(h)) - return 1; /* exist method */ + if (k != kh_end(h)) { + if (kh_value(h, k)) { + return 1; /* exist method */ + } + else { + return 0; + } + } } c = c->super; } |
