[git commit] bc: rewrite "BOOL * EXPR" idiom as if() statement

Denys Vlasenko vda.linux at googlemail.com
Wed Dec 5 14:43:35 UTC 2018


commit: https://git.busybox.net/busybox/commit/?id=d5f7703abb5a0868fd0e9fa3e8c0509ed99ce330
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

function                                             old     new   delta
bc_program_index                                      66      64      -2
bc_program_num                                      1147    1130     -17
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-19)             Total: -19 bytes
   text	   data	    bss	    dec	    hex	filename
 987619	    485	   7296	 995400	  f3048	busybox_old
 987600	    485	   7296	 995381	  f3035	busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 miscutils/bc.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/miscutils/bc.c b/miscutils/bc.c
index 148e340a5..d208a0cc6 100644
--- a/miscutils/bc.c
+++ b/miscutils/bc.c
@@ -2031,8 +2031,9 @@ static void bc_num_parseDecimal(BcNum *n, const char *val)
 
 	ptr = strchr(val, '.');
 
-	// Explicitly test for NULL here to produce either a 0 or 1.
-	n->rdx = (size_t)((ptr != NULL) * ((val + len) - (ptr + 1)));
+	n->rdx = 0;
+	if (ptr != NULL)
+		n->rdx = (size_t)((val + len) - (ptr + 1));
 
 	if (!zero) {
 		for (i = len - 1; i < len; ++n->len, i -= 1 + (i && val[i - 1] == '.'))
@@ -2802,7 +2803,7 @@ static BcStatus bc_lex_number(BcLex *l, char start)
 		c = buf[++i];
 	}
 
-	len = i + 1 * !last_pt - bslashes * 2;
+	len = i + !last_pt - bslashes * 2;
 	if (len > BC_MAX_NUM)
 		return bc_error("number too long: must be [1, BC_NUM_MAX]");
 


More information about the busybox-cvs mailing list