diff options
| author | Denys Vlasenko <vda.linux@googlemail.com> | 2018-12-18 17:14:34 +0100 |
|---|---|---|
| committer | Denys Vlasenko <vda.linux@googlemail.com> | 2018-12-18 17:14:34 +0100 |
| commit | 7b30bc0222fa5f4e539a36a15ceb7b6e413cafd2 (patch) | |
| tree | 00ca5c12625e968dd19ba1a643c470eea4e5c979 | |
| parent | d340143247f9b3aff486a2a6a4dc1e11ab8c8f86 (diff) | |
| download | busybox-w32-7b30bc0222fa5f4e539a36a15ceb7b6e413cafd2.tar.gz busybox-w32-7b30bc0222fa5f4e539a36a15ceb7b6e413cafd2.tar.bz2 busybox-w32-7b30bc0222fa5f4e539a36a15ceb7b6e413cafd2.zip | |
bc: shrink bc_program_pushVar()
function old new delta
bc_program_pushVar 203 198 -5
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| -rw-r--r-- | miscutils/bc.c | 34 |
1 files changed, 14 insertions, 20 deletions
diff --git a/miscutils/bc.c b/miscutils/bc.c index 566808e92..40bb29942 100644 --- a/miscutils/bc.c +++ b/miscutils/bc.c | |||
| @@ -5718,31 +5718,25 @@ static BC_STATUS bc_program_pushVar(char *code, size_t *bgn, | |||
| 5718 | r.d.id.name = name; | 5718 | r.d.id.name = name; |
| 5719 | 5719 | ||
| 5720 | #if ENABLE_DC | 5720 | #if ENABLE_DC |
| 5721 | { | 5721 | if (pop || copy) { |
| 5722 | BcVec *v = bc_program_search(name, true); | 5722 | BcVec *v = bc_program_search(name, true); |
| 5723 | BcNum *num = bc_vec_top(v); | 5723 | BcNum *num = bc_vec_top(v); |
| 5724 | 5724 | ||
| 5725 | if (pop || copy) { | 5725 | free(name); |
| 5726 | if (!BC_PROG_STACK(v, 2 - copy)) { | 5726 | if (!BC_PROG_STACK(v, 2 - copy)) { |
| 5727 | free(name); | 5727 | RETURN_STATUS(bc_error_stack_has_too_few_elements()); |
| 5728 | RETURN_STATUS(bc_error_stack_has_too_few_elements()); | 5728 | } |
| 5729 | } | ||
| 5730 | |||
| 5731 | free(name); | ||
| 5732 | name = NULL; | ||
| 5733 | |||
| 5734 | if (!BC_PROG_STR(num)) { | ||
| 5735 | r.t = BC_RESULT_TEMP; | ||
| 5736 | |||
| 5737 | bc_num_init_DEF_SIZE(&r.d.n); | ||
| 5738 | bc_num_copy(&r.d.n, num); | ||
| 5739 | } else { | ||
| 5740 | r.t = BC_RESULT_STR; | ||
| 5741 | r.d.id.idx = num->rdx; | ||
| 5742 | } | ||
| 5743 | 5729 | ||
| 5744 | if (!copy) bc_vec_pop(v); | 5730 | if (!BC_PROG_STR(num)) { |
| 5731 | r.t = BC_RESULT_TEMP; | ||
| 5732 | bc_num_init_DEF_SIZE(&r.d.n); | ||
| 5733 | bc_num_copy(&r.d.n, num); | ||
| 5734 | } else { | ||
| 5735 | r.t = BC_RESULT_STR; | ||
| 5736 | r.d.id.idx = num->rdx; | ||
| 5745 | } | 5737 | } |
| 5738 | |||
| 5739 | if (!copy) bc_vec_pop(v); | ||
| 5746 | } | 5740 | } |
| 5747 | #endif // ENABLE_DC | 5741 | #endif // ENABLE_DC |
| 5748 | 5742 | ||
