summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorMasamitsu MURASE <[email protected]>2012-07-18 02:17:29 +0900
committerMasamitsu MURASE <[email protected]>2012-07-18 02:17:29 +0900
commita0c4f8558b15f1b5de0cb22f2d45d215f15ecd08 (patch)
tree83d9c279722659017bfd81127d2782aec7615c23
parenta18699a80c14e0e44e904b7537d6d57463b6f39c (diff)
downloadmruby-a0c4f8558b15f1b5de0cb22f2d45d215f15ecd08.tar.gz
mruby-a0c4f8558b15f1b5de0cb22f2d45d215f15ecd08.zip
Kernel#respond_to? should return false if the method is undefined.
-rw-r--r--src/class.c10
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;
}