* time.c (add): remove FIXABLE() which is in LONG2NUM().
* time.c (sub): ditto. * time.c (mul): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54200 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
a2b4c6d1b1
commit
cb390bef8a
@ -1,3 +1,11 @@
|
|||||||
|
Sun Mar 20 18:44:52 2016 NARUSE, Yui <naruse@ruby-lang.org>
|
||||||
|
|
||||||
|
* time.c (add): remove FIXABLE() which is in LONG2NUM().
|
||||||
|
|
||||||
|
* time.c (sub): ditto.
|
||||||
|
|
||||||
|
* time.c (mul): ditto.
|
||||||
|
|
||||||
Sun Mar 20 04:46:02 2016 NARUSE, Yui <naruse@ruby-lang.org>
|
Sun Mar 20 04:46:02 2016 NARUSE, Yui <naruse@ruby-lang.org>
|
||||||
|
|
||||||
* bignum.c (rb_big_cmp): reduce the code.
|
* bignum.c (rb_big_cmp): reduce the code.
|
||||||
|
13
time.c
13
time.c
@ -75,9 +75,7 @@ static VALUE
|
|||||||
add(VALUE x, VALUE y)
|
add(VALUE x, VALUE y)
|
||||||
{
|
{
|
||||||
if (FIXNUM_P(x) && FIXNUM_P(y)) {
|
if (FIXNUM_P(x) && FIXNUM_P(y)) {
|
||||||
long l = FIX2LONG(x) + FIX2LONG(y);
|
return LONG2NUM(FIX2LONG(x) + FIX2LONG(y));
|
||||||
if (FIXABLE(l)) return LONG2FIX(l);
|
|
||||||
return LONG2NUM(l);
|
|
||||||
}
|
}
|
||||||
if (RB_TYPE_P(x, T_BIGNUM)) return rb_big_plus(x, y);
|
if (RB_TYPE_P(x, T_BIGNUM)) return rb_big_plus(x, y);
|
||||||
return rb_funcall(x, '+', 1, y);
|
return rb_funcall(x, '+', 1, y);
|
||||||
@ -87,9 +85,7 @@ static VALUE
|
|||||||
sub(VALUE x, VALUE y)
|
sub(VALUE x, VALUE y)
|
||||||
{
|
{
|
||||||
if (FIXNUM_P(x) && FIXNUM_P(y)) {
|
if (FIXNUM_P(x) && FIXNUM_P(y)) {
|
||||||
long l = FIX2LONG(x) - FIX2LONG(y);
|
return LONG2NUM(FIX2LONG(x) - FIX2LONG(y));
|
||||||
if (FIXABLE(l)) return LONG2FIX(l);
|
|
||||||
return LONG2NUM(l);
|
|
||||||
}
|
}
|
||||||
if (RB_TYPE_P(x, T_BIGNUM)) return rb_big_minus(x, y);
|
if (RB_TYPE_P(x, T_BIGNUM)) return rb_big_minus(x, y);
|
||||||
return rb_funcall(x, '-', 1, y);
|
return rb_funcall(x, '-', 1, y);
|
||||||
@ -144,10 +140,7 @@ mul(VALUE x, VALUE y)
|
|||||||
{
|
{
|
||||||
if (FIXNUM_P(x) && FIXNUM_P(y)) {
|
if (FIXNUM_P(x) && FIXNUM_P(y)) {
|
||||||
#if HAVE_LONG_LONG && SIZEOF_LONG * 2 <= SIZEOF_LONG_LONG
|
#if HAVE_LONG_LONG && SIZEOF_LONG * 2 <= SIZEOF_LONG_LONG
|
||||||
LONG_LONG ll = (LONG_LONG)FIX2LONG(x) * FIX2LONG(y);
|
return LL2NUM((LONG_LONG)FIX2LONG(x) * FIX2LONG(y));
|
||||||
if (FIXABLE(ll))
|
|
||||||
return LONG2FIX(ll);
|
|
||||||
return LL2NUM(ll);
|
|
||||||
#else
|
#else
|
||||||
long z;
|
long z;
|
||||||
if (long_mul(FIX2LONG(x), FIX2LONG(y), &z))
|
if (long_mul(FIX2LONG(x), FIX2LONG(y), &z))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user