bignum.c: avoid (size_t)--
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65754 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
ca14914039
commit
1a84c57e23
17
bignum.c
17
bignum.c
@ -385,6 +385,7 @@ bdigitdbl2bary(BDIGIT *ds, size_t n, BDIGIT_DBL num)
|
|||||||
static int
|
static int
|
||||||
bary_cmp(const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn)
|
bary_cmp(const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn)
|
||||||
{
|
{
|
||||||
|
size_t i;
|
||||||
BARY_TRUNC(xds, xn);
|
BARY_TRUNC(xds, xn);
|
||||||
BARY_TRUNC(yds, yn);
|
BARY_TRUNC(yds, yn);
|
||||||
|
|
||||||
@ -393,11 +394,12 @@ bary_cmp(const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn)
|
|||||||
if (xn > yn)
|
if (xn > yn)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
while (xn-- && xds[xn] == yds[xn])
|
for (i = 0; i < xn; i++)
|
||||||
;
|
if (xds[xn - i - 1] != yds[yn - i - 1])
|
||||||
if (xn == (size_t)-1)
|
break;
|
||||||
|
if (i == xn)
|
||||||
return 0;
|
return 0;
|
||||||
return xds[xn] < yds[xn] ? -1 : 1;
|
return xds[xn - i - 1] < yds[yn - i - 1] ? -1 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static BDIGIT
|
static BDIGIT
|
||||||
@ -5152,6 +5154,9 @@ rb_big2long(VALUE x)
|
|||||||
static unsigned LONG_LONG
|
static unsigned LONG_LONG
|
||||||
big2ull(VALUE x, const char *type)
|
big2ull(VALUE x, const char *type)
|
||||||
{
|
{
|
||||||
|
#if SIZEOF_LONG_LONG > SIZEOF_BDIGIT
|
||||||
|
size_t i;
|
||||||
|
#endif
|
||||||
size_t len = BIGNUM_LEN(x);
|
size_t len = BIGNUM_LEN(x);
|
||||||
unsigned LONG_LONG num;
|
unsigned LONG_LONG num;
|
||||||
BDIGIT *ds = BDIGITS(x);
|
BDIGIT *ds = BDIGITS(x);
|
||||||
@ -5164,9 +5169,9 @@ big2ull(VALUE x, const char *type)
|
|||||||
num = (unsigned LONG_LONG)ds[0];
|
num = (unsigned LONG_LONG)ds[0];
|
||||||
#else
|
#else
|
||||||
num = 0;
|
num = 0;
|
||||||
while (len--) {
|
for (i = 0; i < len; i++) {
|
||||||
num = BIGUP(num);
|
num = BIGUP(num);
|
||||||
num += ds[len];
|
num += ds[len - i - 1];
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
return num;
|
return num;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user