aboutsummaryrefslogtreecommitdiffstats
path: root/bignum.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-02-15 05:15:33 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-02-15 05:15:33 +0000
commit49079911ba45098a7d3f910bb4bf0e0bcc9dad49 (patch)
treea77d74f189f5416755708c3449df7f0104665d4c /bignum.c
parent174be800271b112c01e28702751aba715778d798 (diff)
downloadruby-49079911ba45098a7d3f910bb4bf0e0bcc9dad49.tar.gz
bignum.c: micro optimization
* bignum.c (rb_big_uminus, bigsub_int): use BIGNUM_NEGATE. * internal.h (BIGNUM_NEGATE): simplify negation. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53832 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'bignum.c')
-rw-r--r--bignum.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/bignum.c b/bignum.c
index 8f79713682..1f9dfb56aa 100644
--- a/bignum.c
+++ b/bignum.c
@@ -5526,7 +5526,7 @@ rb_big_uminus(VALUE x)
{
VALUE z = rb_big_clone(x);
- BIGNUM_SET_SIGN(z, !BIGNUM_SIGN(x));
+ BIGNUM_NEGATE(z);
return bignorm(z);
}
@@ -5624,7 +5624,7 @@ bigsub_int(VALUE x, long y0)
assert(xn == zn);
num = (BDIGIT_DBL_SIGNED)xds[0] - y;
if (xn == 1 && num < 0) {
- BIGNUM_SET_SIGN(z, !BIGNUM_SIGN(x));
+ BIGNUM_NEGATE(z);
zds[0] = (BDIGIT)-num;
RB_GC_GUARD(x);
return bignorm(z);
@@ -5687,7 +5687,7 @@ bigsub_int(VALUE x, long y0)
assert(num == 0 || num == -1);
if (num < 0) {
get2comp(z);
- BIGNUM_SET_SIGN(z, !BIGNUM_SIGN(x));
+ BIGNUM_NEGATE(z);
}
RB_GC_GUARD(x);
return bignorm(z);