bc: rewrite bc_num_compare() to be readable

function                                             old     new   delta
bc_num_compare                                        59      51      -8

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2018-12-18 00:39:24 +01:00
parent 57734c926b
commit 4113e1f2cd

View File

@ -1475,10 +1475,20 @@ static void bc_num_subArrays(BcDig *restrict a, BcDig *restrict b,
static ssize_t bc_num_compare(BcDig *restrict a, BcDig *restrict b, size_t len) static ssize_t bc_num_compare(BcDig *restrict a, BcDig *restrict b, size_t len)
{ {
size_t i; size_t i = len;
int c = 0; for (;;) {
for (i = len - 1; i < len && !(c = a[i] - b[i]); --i); int c;
return BC_NUM_NEG(i + 1, c < 0); if (i == 0)
return 0;
i--;
c = a[i] - b[i];
if (c != 0) {
i++;
if (c < 0)
return -i;
return i;
}
}
} }
static ssize_t bc_num_cmp(BcNum *a, BcNum *b) static ssize_t bc_num_cmp(BcNum *a, BcNum *b)