summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2018-02-13 09:12:39 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2018-02-13 09:12:39 +0900
commit75c1fccd08a7cc529bcac5031ebc52176c6fd267 (patch)
tree40740188073908e5625766d1219d7f7b679df9ff
parentef1a0e63580af82cd4a4e40ef6751e87578061ed (diff)
downloadmruby-75c1fccd08a7cc529bcac5031ebc52176c6fd267.tar.gz
mruby-75c1fccd08a7cc529bcac5031ebc52176c6fd267.zip
Check if `to_int` returns `fixnum` value; fix #3946
-rw-r--r--src/object.c4
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;
}