bc: shrink bc_program_pushVar()
authorDenys Vlasenko <vda.linux@googlemail.com>
Tue, 18 Dec 2018 16:14:34 +0000 (17:14 +0100)
committerDenys Vlasenko <vda.linux@googlemail.com>
Tue, 18 Dec 2018 16:14:34 +0000 (17:14 +0100)
function                                             old     new   delta
bc_program_pushVar                                   203     198      -5

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

index 566808e924e32b2ef73d53d573d49fb674e05e9c..40bb29942a74c628437a5fa0c829927dc412451b 100644 (file)
@@ -5718,31 +5718,25 @@ static BC_STATUS bc_program_pushVar(char *code, size_t *bgn,
        r.d.id.name = name;
 
 #if ENABLE_DC
-       {
+       if (pop || copy) {
                BcVec *v = bc_program_search(name, true);
                BcNum *num = bc_vec_top(v);
 
-               if (pop || copy) {
-                       if (!BC_PROG_STACK(v, 2 - copy)) {
-                               free(name);
-                               RETURN_STATUS(bc_error_stack_has_too_few_elements());
-                       }
-
-                       free(name);
-                       name = NULL;
-
-                       if (!BC_PROG_STR(num)) {
-                               r.t = BC_RESULT_TEMP;
-
-                               bc_num_init_DEF_SIZE(&r.d.n);
-                               bc_num_copy(&r.d.n, num);
-                       } else {
-                               r.t = BC_RESULT_STR;
-                               r.d.id.idx = num->rdx;
-                       }
+               free(name);
+               if (!BC_PROG_STACK(v, 2 - copy)) {
+                       RETURN_STATUS(bc_error_stack_has_too_few_elements());
+               }
 
-                       if (!copy) bc_vec_pop(v);
+               if (!BC_PROG_STR(num)) {
+                       r.t = BC_RESULT_TEMP;
+                       bc_num_init_DEF_SIZE(&r.d.n);
+                       bc_num_copy(&r.d.n, num);
+               } else {
+                       r.t = BC_RESULT_STR;
+                       r.d.id.idx = num->rdx;
                }
+
+               if (!copy) bc_vec_pop(v);
        }
 #endif // ENABLE_DC