[git commit] bc: avoid bc_vec_item() calls in bc_vm_run()

Denys Vlasenko vda.linux at googlemail.com
Wed Dec 19 17:09:31 UTC 2018


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

function                                             old     new   delta
bc_vm_run                                            124     112     -12

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

diff --git a/miscutils/bc.c b/miscutils/bc.c
index 01442c33b..c1601a3e4 100644
--- a/miscutils/bc.c
+++ b/miscutils/bc.c
@@ -6926,6 +6926,7 @@ static const char bc_lib[] ALIGN1 = {
 
 static BC_STATUS zbc_vm_exec(void)
 {
+	char **fname;
 	BcStatus s;
 	size_t i;
 
@@ -6941,13 +6942,16 @@ static BC_STATUS zbc_vm_exec(void)
 #endif
 
 	s = BC_STATUS_SUCCESS;
-	for (i = 0; !s && i < G.files.len; ++i)
-		s = zbc_vm_file(*((char **) bc_vec_item(&G.files, i)));
-	if (ENABLE_FEATURE_CLEAN_UP && s && !G_ttyin) {
-		// Debug config, non-interactive mode:
-		// return all the way back to main.
-		// Non-debug builds do not come here, they exit.
-		RETURN_STATUS(s);
+	fname = (void*)G.files.v;
+	for (i = 0; i < G.files.len; i++) {
+		s = zbc_vm_file(*fname++);
+		if (ENABLE_FEATURE_CLEAN_UP && !G_ttyin && s) {
+			// Debug config, non-interactive mode:
+			// return all the way back to main.
+			// Non-debug builds do not come here
+			// in non-interactive mode, they exit.
+			RETURN_STATUS(s);
+		}
 	}
 
 	if (IS_BC || (option_mask32 & BC_FLAG_I))


More information about the busybox-cvs mailing list