bc: code shrink
authorDenys Vlasenko <vda.linux@googlemail.com>
Tue, 18 Dec 2018 18:17:11 +0000 (19:17 +0100)
committerDenys Vlasenko <vda.linux@googlemail.com>
Tue, 18 Dec 2018 18:17:11 +0000 (19:17 +0100)
function                                             old     new   delta
bc_program_name                                       67      63      -4
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-4)               Total: -4 bytes
   text    data     bss     dec     hex filename
 981372     485    7296  989153   f17e1 busybox_old
 981368     485    7296  989149   f17dd busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
miscutils/bc.c

index 40bb29942a74c628437a5fa0c829927dc412451b..eba8aa272c06280c6b336d7077a108b441b7d296 100644 (file)
@@ -5174,17 +5174,19 @@ static size_t bc_program_index(char *code, size_t *bgn)
 static char *bc_program_name(char *code, size_t *bgn)
 {
        size_t i;
-       char *s, *str = code + *bgn, *ptr = strchr(str, BC_PARSE_STREND);
+       char *s;
 
-       s = xmalloc(ptr - str + 1);
+       code += *bgn;
+       s = xmalloc(strchr(code, BC_PARSE_STREND) - code + 1);
        i = 0;
        for (;;) {
-               char c = code[(*bgn)++];
-               if (c == '\0' || c == BC_PARSE_STREND)
+               char c = *code++;
+               if (c == BC_PARSE_STREND)
                        break;
                s[i++] = c;
        }
        s[i] = '\0';
+       *bgn += i + 1;
 
        return s;
 }