bc: simplify zbc_program_logical()
authorDenys Vlasenko <vda.linux@googlemail.com>
Tue, 11 Dec 2018 23:50:23 +0000 (00:50 +0100)
committerDenys Vlasenko <vda.linux@googlemail.com>
Tue, 11 Dec 2018 23:51:53 +0000 (00:51 +0100)
function                                             old     new   delta
bc_program_exec                                     3918    3876     -42
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-42)             Total: -42 bytes
   text    data     bss     dec     hex filename
 982061     485    7296  989842   f1a92 busybox_old
 982019     485    7296  989800   f1a68 busybox_unstripped

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

index 791275c8c71e2e32c2914da9d666ab745ef1a45c..8426998d076207528e2748245614f82875b2ca11 100644 (file)
@@ -5793,8 +5793,7 @@ static BC_STATUS zbc_program_logical(char inst)
        BcStatus s;
        BcResult *opd1, *opd2, res;
        BcNum *n1, *n2;
-       bool cond = 0;
-       ssize_t cmp;
+       ssize_t cond;
 
        s = zbc_program_binOpPrep(&opd1, &n1, &opd2, &n2, false);
        if (s) RETURN_STATUS(s);
@@ -5806,25 +5805,25 @@ static BC_STATUS zbc_program_logical(char inst)
        else if (inst == BC_INST_BOOL_OR)
                cond = bc_num_cmp(n1, &G.prog.zero) || bc_num_cmp(n2, &G.prog.zero);
        else {
-               cmp = bc_num_cmp(n1, n2);
+               cond = bc_num_cmp(n1, n2);
                switch (inst) {
                case BC_INST_REL_EQ:
-                       cond = cmp == 0;
+                       cond = (cond == 0);
                        break;
                case BC_INST_REL_LE:
-                       cond = cmp <= 0;
+                       cond = (cond <= 0);
                        break;
                case BC_INST_REL_GE:
-                       cond = cmp >= 0;
-                       break;
-               case BC_INST_REL_NE:
-                       cond = cmp != 0;
+                       cond = (cond >= 0);
                        break;
                case BC_INST_REL_LT:
-                       cond = cmp < 0;
+                       cond = (cond < 0);
                        break;
                case BC_INST_REL_GT:
-                       cond = cmp > 0;
+                       cond = (cond > 0);
+                       break;
+               default: // = case BC_INST_REL_NE:
+                       //cond = (cond != 0); - not needed
                        break;
                }
        }