summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2017-01-06 18:56:39 +0900
committerGitHub <[email protected]>2017-01-06 18:56:39 +0900
commit8c11b04d5c5961c28af44221c91a57a87d03076e (patch)
tree49f3488eb0fdfd0eecff75fbe59cc21677ce48b7
parent3c2f101aa4e7e0dc6a675311f3c79c3bf90619ec (diff)
parentddcb30d84bfad619184a504b76e153bed0b875b9 (diff)
downloadmruby-8c11b04d5c5961c28af44221c91a57a87d03076e.tar.gz
mruby-8c11b04d5c5961c28af44221c91a57a87d03076e.zip
Merge pull request #3377 from ksss/respond_to
Check intern object returned by mrb_check_string_type
-rw-r--r--src/kernel.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/kernel.c b/src/kernel.c
index 677c0d519..76bd59469 100644
--- a/src/kernel.c
+++ b/src/kernel.c
@@ -988,14 +988,17 @@ obj_respond_to(mrb_state *mrb, mrb_value self)
}
else {
mrb_value tmp;
- if (!mrb_string_p(mid)) {
+ if (mrb_string_p(mid)) {
+ tmp = mrb_check_intern_str(mrb, mid);
+ }
+ else {
tmp = mrb_check_string_type(mrb, mid);
if (mrb_nil_p(tmp)) {
tmp = mrb_inspect(mrb, mid);
mrb_raisef(mrb, E_TYPE_ERROR, "%S is not a symbol", tmp);
}
+ tmp = mrb_check_intern_str(mrb, tmp);
}
- tmp = mrb_check_intern_str(mrb, mid);
if (mrb_nil_p(tmp)) {
respond_to_p = FALSE;
}