summaryrefslogtreecommitdiff
path: root/bignum.c
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-06-15 23:56:32 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-06-15 23:56:32 +0000
commitd631642a2ef3e86b0d3764df4c881a286fd13ec9 (patch)
tree412f64ddea60f548b99b21cb31786c2283e62567 /bignum.c
parent00a95f15bc840814baeaec8d970acf998d70e273 (diff)
* bignum.c (bigdivrem): Use a BDIGIT variable to store the return
value of bigdivrem_single. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41327 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'bignum.c')
-rw-r--r--bignum.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/bignum.c b/bignum.c
index 136318b618..0d4bab33cf 100644
--- a/bignum.c
+++ b/bignum.c
@@ -3951,12 +3951,12 @@ bary_divmod(BDIGIT *qds, long nq, BDIGIT *rds, long nr, BDIGIT *xds, long nx, BD
MEMZERO(zds+nx, BDIGIT, nz-nx);
if ((yds[ny-1] >> (BITSPERDIG-1)) & 1) {
- /* digits_bigdivrem_multi_sub will not modify y.
+ /* bigdivrem_normal will not modify y.
* So use yds directly. */
tds = yds;
}
else {
- /* digits_bigdivrem_multi_sub will modify y.
+ /* bigdivrem_normal will modify y.
* So use rds as a temporary buffer. */
MEMCPY(rds, yds, BDIGIT, ny);
tds = rds;
@@ -3986,7 +3986,6 @@ bigdivrem(VALUE x, VALUE y, volatile VALUE *divp, volatile VALUE *modp)
VALUE z, zz;
VALUE tmpy = 0, tmpz = 0;
BDIGIT *xds, *yds, *zds, *tds;
- BDIGIT_DBL t2;
BDIGIT dd;
yds = BDIGITS(y);
@@ -4006,9 +4005,9 @@ bigdivrem(VALUE x, VALUE y, volatile VALUE *divp, volatile VALUE *modp)
dd = yds[0];
z = bignew(nx, RBIGNUM_SIGN(x)==RBIGNUM_SIGN(y));
zds = BDIGITS(z);
- t2 = bigdivrem_single(zds, xds, nx, dd);
+ dd = bigdivrem_single(zds, xds, nx, dd);
if (modp) {
- *modp = rb_uint2big((VALUE)t2);
+ *modp = rb_uint2big((VALUE)dd);
RBIGNUM_SET_SIGN(*modp, RBIGNUM_SIGN(x));
}
if (divp) *divp = z;