bc: rewrite another for() loop
function old new delta zbc_num_d 570 563 -7 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
@@ -1933,7 +1933,6 @@ static FAST_FUNC BC_STATUS zbc_num_d(BcNum *a, BcNum *b, BcNum *restrict c, size
|
|||||||
BcDig *n, *p, q;
|
BcDig *n, *p, q;
|
||||||
size_t len, end, i;
|
size_t len, end, i;
|
||||||
BcNum cp;
|
BcNum cp;
|
||||||
bool zero = true;
|
|
||||||
|
|
||||||
if (b->len == 0)
|
if (b->len == 0)
|
||||||
RETURN_STATUS(bc_error("divide by zero"));
|
RETURN_STATUS(bc_error("divide by zero"));
|
||||||
@@ -1961,8 +1960,13 @@ static FAST_FUNC BC_STATUS zbc_num_d(BcNum *a, BcNum *b, BcNum *restrict c, size
|
|||||||
if (scale > cp.rdx) bc_num_extend(&cp, scale - cp.rdx);
|
if (scale > cp.rdx) bc_num_extend(&cp, scale - cp.rdx);
|
||||||
|
|
||||||
if (b->rdx == b->len) {
|
if (b->rdx == b->len) {
|
||||||
for (i = 0; zero && i < len; ++i) zero = !b->num[len - i - 1];
|
for (;;) {
|
||||||
len -= i - 1;
|
if (len == 0) break;
|
||||||
|
len--;
|
||||||
|
if (b->num[len] != 0)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
len++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cp.cap == cp.len) bc_num_expand(&cp, cp.len + 1);
|
if (cp.cap == cp.len) bc_num_expand(&cp, cp.len + 1);
|
||||||
|
Reference in New Issue
Block a user