diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2018-02-13 09:12:39 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2018-02-13 09:12:39 +0900 |
| commit | 75c1fccd08a7cc529bcac5031ebc52176c6fd267 (patch) | |
| tree | 40740188073908e5625766d1219d7f7b679df9ff /src/object.c | |
| parent | ef1a0e63580af82cd4a4e40ef6751e87578061ed (diff) | |
| download | mruby-75c1fccd08a7cc529bcac5031ebc52176c6fd267.tar.gz mruby-75c1fccd08a7cc529bcac5031ebc52176c6fd267.zip | |
Check if `to_int` returns `fixnum` value; fix #3946
Diffstat (limited to 'src/object.c')
| -rw-r--r-- | src/object.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/object.c b/src/object.c index df2e8b5ab..8724c5416 100644 --- a/src/object.c +++ b/src/object.c @@ -569,8 +569,8 @@ arg_error: mrb_raise(mrb, E_ARGUMENT_ERROR, "base specified for non string value"); } tmp = convert_type(mrb, val, "Integer", "to_int", FALSE); - if (mrb_nil_p(tmp)) { - return mrb_to_integer(mrb, val, "to_i"); + if (mrb_nil_p(tmp) || !mrb_fixnum_p(tmp)) { + tmp = mrb_to_integer(mrb, val, "to_i"); } return tmp; } |
