aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2018-12-10 12:57:01 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2018-12-10 12:57:01 +0100
commita7f1a3654041ed4b1d4716f71a8396977aca8223 (patch)
tree122ec83245361be7d0ad96d13e2b20b2620f5772
parent44d79d866dc4c9bb0c3bba47612feae78365a046 (diff)
downloadbusybox-a7f1a3654041ed4b1d4716f71a8396977aca8223.tar.gz
bc: simplify bc_program_len()
function old new delta bc_program_len 42 34 -8 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--miscutils/bc.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/miscutils/bc.c b/miscutils/bc.c
index 1879581e3..afd5c8d0e 100644
--- a/miscutils/bc.c
+++ b/miscutils/bc.c
@@ -6254,12 +6254,14 @@ static unsigned long bc_program_scale(BcNum *n)
static unsigned long bc_program_len(BcNum *n)
{
- unsigned long len = n->len;
- size_t i;
-
- if (n->rdx != n->len) return len;
- for (i = n->len - 1; i < n->len && n->num[i] == 0; --len, --i);
+ size_t len = n->len;
+ if (n->rdx != len) return len;
+ for (;;) {
+ if (len == 0) break;
+ len--;
+ if (n->num[len] != 0) break;
+ }
return len;
}