From: Denys Vlasenko <vda.linux@googlemail.com>
Date: Sat, 8 Dec 2018 22:48:53 +0000 (+0100)
Subject: bc: eliminate always the same params to bc_num_printBase()
X-Git-Tag: 1_30_0~246
X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=0f37b3286a9a999286606e0ec32cdf2902354099;p=oweals%2Fbusybox.git

bc: eliminate always the same params to bc_num_printBase()

function                                             old     new   delta
bc_program_print                                     739     736      -3

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
---

diff --git a/miscutils/bc.c b/miscutils/bc.c
index aeb06a97b..450c21c60 100644
--- a/miscutils/bc.c
+++ b/miscutils/bc.c
@@ -2436,28 +2436,31 @@ err:
 	return s;
 }
 
-static BcStatus bc_num_printBase(BcNum *n, BcNum *base, size_t base_t)
+static BcStatus bc_num_printBase(BcNum *n)
 {
 	BcStatus s;
 	size_t width, i;
 	BcNumDigitOp print;
 	bool neg = n->neg;
 
-	if (neg) bb_putchar('-');
-	G.prog.nchars += neg;
+	if (neg) {
+		bb_putchar('-');
+		G.prog.nchars++;
+	}
 
 	n->neg = false;
 
-	if (base_t <= BC_NUM_MAX_IBASE) {
+	if (G.prog.ob_t <= BC_NUM_MAX_IBASE) {
 		width = 1;
 		print = bc_num_printHex;
 	}
 	else {
-		for (i = base_t - 1, width = 0; i != 0; i /= 10, ++width);
+		for (i = G.prog.ob_t - 1, width = 0; i != 0; i /= 10, ++width)
+			continue;
 		print = bc_num_printDigits;
 	}
 
-	s = bc_num_printNum(n, base, width, print);
+	s = bc_num_printNum(n, &G.prog.ob, width, print);
 	n->neg = neg;
 
 	return s;
@@ -2486,9 +2489,6 @@ static BcStatus bc_num_parse(BcNum *n, const char *val, BcNum *base,
 
 static BcStatus bc_num_print(BcNum *n, bool newline)
 {
-	BcNum *base = &G.prog.ob;
-	size_t base_t = G.prog.ob_t;
-
 	BcStatus s = BC_STATUS_SUCCESS;
 
 	bc_num_printNewline();
@@ -2497,10 +2497,10 @@ static BcStatus bc_num_print(BcNum *n, bool newline)
 		bb_putchar('0');
 		++G.prog.nchars;
 	}
-	else if (base_t == 10)
+	else if (G.prog.ob_t == 10)
 		bc_num_printDecimal(n);
 	else
-		s = bc_num_printBase(n, base, base_t);
+		s = bc_num_printBase(n);
 
 	if (newline) {
 		bb_putchar('\n');