* numeric.c (fix_cmp): use rb_big_cmp if x is Fixnum and y is Bignum.

rb_big_cmp handles such case smartly with big_norm.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54193 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
naruse 2016-03-19 10:06:57 +00:00
parent 5a213ee2e2
commit b01312ab97

View File

@ -3425,7 +3425,7 @@ fix_cmp(VALUE x, VALUE y)
return INT2FIX(-1);
}
else if (RB_TYPE_P(y, T_BIGNUM)) {
return rb_big_cmp(rb_int2big(FIX2LONG(x)), y);
return rb_big_cmp(y, x);
}
else if (RB_TYPE_P(y, T_FLOAT)) {
return rb_integer_float_cmp(x, y);