[git commit] bc: simplify filename saving in zbc_vm_file()

Denys Vlasenko vda.linux at googlemail.com
Thu Dec 13 18:58:58 UTC 2018


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

function                                             old     new   delta
bc_vm_run                                            433     423     -10
zbc_vm_file                                          187     174     -13
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-23)             Total: -23 bytes
   text	   data	    bss	    dec	    hex	filename
 980350	    485	   7296	 988131	  f13e3	busybox_old
 980327	    485	   7296	 988108	  f13cc	busybox_unstripped

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

diff --git a/miscutils/bc.c b/miscutils/bc.c
index 57c9ca565..5930caa32 100644
--- a/miscutils/bc.c
+++ b/miscutils/bc.c
@@ -7010,7 +7010,9 @@ static BC_STATUS zbc_vm_process(const char *text)
 
 static BC_STATUS zbc_vm_file(const char *file)
 {
-	const char *sv_file;
+	// So far bc/dc have no way to include a file from another file,
+	// therefore we know G.prog.file == NULL on entry
+	//const char *sv_file;
 	char *data;
 	BcStatus s;
 	BcFunc *main_func;
@@ -7019,7 +7021,7 @@ static BC_STATUS zbc_vm_file(const char *file)
 	data = bc_read_file(file);
 	if (!data) RETURN_STATUS(bc_error_fmt("file '%s' is not text", file));
 
-	sv_file = G.prog.file;
+	//sv_file = G.prog.file;
 	G.prog.file = file;
 	bc_lex_file(&G.prs.l);
 	s = zbc_vm_process(data);
@@ -7032,7 +7034,8 @@ static BC_STATUS zbc_vm_file(const char *file)
 		s = bc_error_fmt("file '%s' is not executable", file);
 
 err:
-	G.prog.file = sv_file;
+	//G.prog.file = sv_file;
+	G.prog.file = NULL;
 	free(data);
 	RETURN_STATUS(s);
 }
@@ -7047,7 +7050,7 @@ static BC_STATUS zbc_vm_stdin(void)
 	size_t str;
 	bool comment;
 
-	G.prog.file = NULL;
+	//G.prog.file = NULL; - already is
 	bc_lex_file(&G.prs.l);
 
 	bc_char_vec_init(&buffer);


More information about the busybox-cvs mailing list