[git commit] bc: shorten bc_program_addFunc()

Denys Vlasenko vda.linux at googlemail.com
Wed Dec 19 19:05:50 UTC 2018


commit: https://git.busybox.net/busybox/commit/?id=eaa3b00002e23e2ecccade3e06790dd524e7b662
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

function                                             old     new   delta
bc_func_init                                           -      50     +50
bc_program_addFunc                                   201     138     -63
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/1 up/down: 50/-63)            Total: -13 bytes

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 miscutils/bc.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/miscutils/bc.c b/miscutils/bc.c
index 7fcf00aa9..c59d5a2b5 100644
--- a/miscutils/bc.c
+++ b/miscutils/bc.c
@@ -3624,13 +3624,11 @@ static size_t bc_program_addFunc(char *name)
 	idx = entry_ptr->idx;
 
 	if (!inserted) {
+		// There is already a function with this name.
+		// It'll be redefined now, clear old definition.
 		BcFunc *func = bc_program_func(entry_ptr->idx);
-
-		// We need to reset these, so the function can be repopulated.
-		func->nparams = 0;
-		bc_vec_pop_all(&func->autos);
-		bc_vec_pop_all(&func->code);
-		bc_vec_pop_all(&func->labels);
+		bc_func_free(func);
+		bc_func_init(func);
 	} else {
 		bc_func_init(&f);
 		bc_vec_push(&G.prog.fns, &f);


More information about the busybox-cvs mailing list