bc: further simplify string-to-number conversion code
function old new delta bc_program_index 66 64 -2 bc_program_num 983 963 -20 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-22) Total: -22 bytes text data bss dec hex filename 985706 477 7296 993479 f28c7 busybox_old 985684 477 7296 993457 f28b1 busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
4a024c7719
commit
218ed1cf54
@ -2246,8 +2246,14 @@ static void bc_num_parseDecimal(BcNum *n, const char *val)
|
||||
n->rdx = (size_t)((val + len) - (ptr + 1));
|
||||
|
||||
if (!zero) {
|
||||
for (i = len - 1; i < len; ++n->len, i -= 1 + (i && val[i - 1] == '.'))
|
||||
i = len - 1;
|
||||
for (;;) {
|
||||
n->num[n->len] = val[i] - '0';
|
||||
++n->len;
|
||||
skip_dot:
|
||||
if ((ssize_t)--i == (ssize_t)-1) break;
|
||||
if (val[i] == '.') goto skip_dot;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user