From 7b30bc0222fa5f4e539a36a15ceb7b6e413cafd2 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Tue, 18 Dec 2018 17:14:34 +0100 Subject: bc: shrink bc_program_pushVar() function old new delta bc_program_pushVar 203 198 -5 Signed-off-by: Denys Vlasenko --- miscutils/bc.c | 34 ++++++++++++++-------------------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/miscutils/bc.c b/miscutils/bc.c index 566808e..40bb299 100644 --- a/miscutils/bc.c +++ b/miscutils/bc.c @@ -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 -- cgit v1.1