aboutsummaryrefslogtreecommitdiffstats
path: root/object.c
diff options
context:
space:
mode:
authorshyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-03-09 02:31:23 +0000
committershyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-03-09 02:31:23 +0000
commita08df05021a3513d0382b95197e020e44da45a4d (patch)
tree13bb3e499ace099af85fe5679e763f5fba3a16de /object.c
parented598ead0ed450df9b2ab428f9330e5ea31d2287 (diff)
downloadruby-a08df05021a3513d0382b95197e020e44da45a4d.tar.gz
revert RB_FIXABLE related changesets [Bug #13288][Bug #13293][Bug #13294]
This commit is auto-generated using following command: svn diff -r57807:57788 include internal.h bignum.c numeric.c compile.c insns.def object.c sprintf.c | patch -p0 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57818 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'object.c')
-rw-r--r--object.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/object.c b/object.c
index 21779401fb..9ec96687e9 100644
--- a/object.c
+++ b/object.c
@@ -2747,8 +2747,11 @@ rb_convert_to_integer(VALUE val, int base)
VALUE tmp;
if (RB_FLOAT_TYPE_P(val)) {
+ double f;
if (base != 0) goto arg_error;
- return rb_dbl2ival(RFLOAT_VALUE(val));
+ f = RFLOAT_VALUE(val);
+ if (FIXABLE(f)) return LONG2FIX((long)f);
+ return rb_dbl2big(f);
}
else if (RB_INTEGER_TYPE_P(val)) {
if (base != 0) goto arg_error;