diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-01-06 18:56:39 +0900 |
|---|---|---|
| committer | GitHub <[email protected]> | 2017-01-06 18:56:39 +0900 |
| commit | 8c11b04d5c5961c28af44221c91a57a87d03076e (patch) | |
| tree | 49f3488eb0fdfd0eecff75fbe59cc21677ce48b7 /src/kernel.c | |
| parent | 3c2f101aa4e7e0dc6a675311f3c79c3bf90619ec (diff) | |
| parent | ddcb30d84bfad619184a504b76e153bed0b875b9 (diff) | |
| download | mruby-8c11b04d5c5961c28af44221c91a57a87d03076e.tar.gz mruby-8c11b04d5c5961c28af44221c91a57a87d03076e.zip | |
Merge pull request #3377 from ksss/respond_to
Check intern object returned by mrb_check_string_type
Diffstat (limited to 'src/kernel.c')
| -rw-r--r-- | src/kernel.c | 7 |
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; } |
