* bignum.c (big2str_orig): Refactored.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42344 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
akr 2013-08-02 17:24:19 +00:00
parent 81f42c7576
commit 04cf3fa346
2 changed files with 15 additions and 20 deletions

View File

@ -1,6 +1,6 @@
Sat Aug 3 01:40:33 2013 Tanaka Akira <akr@fsij.org> Sat Aug 3 02:22:05 2013 Tanaka Akira <akr@fsij.org>
* bignum.c (big2str_orig): Rename a local variable. * bignum.c (big2str_orig): Refactored.
Sat Aug 3 01:20:19 2013 Tanaka Akira <akr@fsij.org> Sat Aug 3 01:20:19 2013 Tanaka Akira <akr@fsij.org>

View File

@ -4251,7 +4251,6 @@ big2str_orig(struct big2str_struct *b2s, VALUE x, size_t taillen)
{ {
long i = RBIGNUM_LEN(x); long i = RBIGNUM_LEN(x);
size_t j; size_t j;
int k;
BDIGIT* ds = BDIGITS(x); BDIGIT* ds = BDIGITS(x);
BDIGIT_DBL num; BDIGIT_DBL num;
char buf[SIZEOF_BDIGIT_DBL*CHAR_BIT], *p; char buf[SIZEOF_BDIGIT_DBL*CHAR_BIT], *p;
@ -4271,27 +4270,23 @@ big2str_orig(struct big2str_struct *b2s, VALUE x, size_t taillen)
return; return;
p = buf; p = buf;
j = sizeof(buf); j = sizeof(buf);
} do {
else { p[--j] = ruby_digitmap[num % b2s->base];
power_cache_get_power(b2s->base, 0, &len); num /= b2s->base;
p = b2s->ptr; } while (num);
j = len;
}
k = b2s->hbase2_numdigits;
while (k--) {
p[--j] = ruby_digitmap[num % b2s->base];
num /= b2s->base;
if (j <= 0) break;
if (beginning && num == 0) break;
}
if (beginning) {
while (j < sizeof(buf) && buf[j] == '0')
j++;
len = sizeof(buf) - j; len = sizeof(buf) - j;
big2str_alloc(b2s, len + taillen); big2str_alloc(b2s, len + taillen);
MEMCPY(b2s->ptr, buf + j, char, len); MEMCPY(b2s->ptr, buf + j, char, len);
} }
else {
p = b2s->ptr;
j = b2s->hbase2_numdigits;
do {
p[--j] = ruby_digitmap[num % b2s->base];
num /= b2s->base;
} while (j);
len = b2s->hbase2_numdigits;
}
b2s->ptr += len; b2s->ptr += len;
} }