1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

Use FIX2LONG to avoid unexpected exception

Though it won't happen in the real world in this context, FIX2INT may
raise an exception and it cause to generate extra code.
This commit is contained in:
NARUSE, Yui 2019-11-07 18:48:51 +09:00
parent d45a013a1a
commit 26843cbcd0

View file

@ -1461,7 +1461,7 @@ flo_cmp(VALUE x, VALUE y)
if (RB_TYPE_P(y, T_FIXNUM) || RB_TYPE_P(y, T_BIGNUM)) { if (RB_TYPE_P(y, T_FIXNUM) || RB_TYPE_P(y, T_BIGNUM)) {
VALUE rel = rb_integer_float_cmp(y, x); VALUE rel = rb_integer_float_cmp(y, x);
if (FIXNUM_P(rel)) if (FIXNUM_P(rel))
return INT2FIX(-FIX2INT(rel)); return LONG2FIX(-FIX2LONG(rel));
return rel; return rel;
} }
else if (RB_TYPE_P(y, T_FLOAT)) { else if (RB_TYPE_P(y, T_FLOAT)) {