[prev in list] [next in list] [prev in thread] [next in thread] 

List:       busybox-cvs
Subject:    [git commit] top: code shrink
From:       Denys Vlasenko <vda.linux () googlemail ! com>
Date:       2022-05-10 11:51:09
Message-ID: 20220510114054.3726784E3D () busybox ! osuosl ! org
[Download RAW message or body]

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

function                                             old     new   delta
display_process_list                                1191    1186      -5

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
---
 procps/top.c | 25 ++++++++++++++-----------
 1 file changed, 14 insertions(+), 11 deletions(-)

diff --git a/procps/top.c b/procps/top.c
index 15222f570..5141feef1 100644
--- a/procps/top.c
+++ b/procps/top.c
@@ -608,8 +608,6 @@ static NOINLINE void display_process_list(int lines_rem, int scr_width)
 		BITS_PER_INT = sizeof(int) * 8
 	};
 
-	char ppubuf[sizeof(int)*3 * 2 + 12];
-	int n;
 	top_status_t *s;
 	unsigned long total_memory = display_header(scr_width, &lines_rem); /* or use total_vsz? */
 	/* xxx_shift and xxx_scale variables allow us to replace
@@ -691,6 +689,9 @@ static NOINLINE void display_process_list(int lines_rem, int scr_width)
 		lines_rem = ntop - G_scroll_ofs;
 	s = top + G_scroll_ofs;
 	while (--lines_rem >= 0) {
+		int n;
+		char *pp;
+		char ppubuf[sizeof(int)*3 * 2 + 12];
 		char vsz_str_buf[8];
 		unsigned col;
 
@@ -706,14 +707,15 @@ static NOINLINE void display_process_list(int lines_rem, int scr_width)
 			/* Format PID PPID USER part into 6+6+8 chars:
 			 * shrink PID/PPID if possible, then truncate USER
 			 */
-			char *pp, *p = ppubuf;
-			if (*p == ' ') {
-				do
-					p++, n--;
-				while (n != 6+6+8 && *p == ' ');
-				overlapping_strcpy(ppubuf, p); /* shrink PID */
-				if (n == 6+6+8)
-					goto shortened;
+			char *p;
+			pp = ppubuf;
+			if (*pp == ' ') {
+				do {
+					pp++, n--;
+					if (n == 6+6+8)
+						goto shortened;
+				} while (*pp == ' ');
+				overlapping_strcpy(ppubuf, pp); /* shrink PID */
 			}
 			pp = p = skip_non_whitespace(ppubuf) + 1;
 			if (*p == ' ') {
@@ -724,13 +726,14 @@ static NOINLINE void display_process_list(int lines_rem, int scr_width)
 			}
 			ppubuf[6+6+8] = '\0'; /* truncate USER */
 		}
+		pp = ppubuf;
  shortened:
 		col = snprintf(line_buf, scr_width,
 				"\n" "%s %s  %.5s" FMT
 				IF_FEATURE_TOP_SMP_PROCESS(" %3d")
 				IF_FEATURE_TOP_CPU_USAGE_PERCENTAGE(FMT)
 				" ",
-				ppubuf,
+				pp,
 				s->state, vsz_str_buf,
 				SHOW_STAT(pmem)
 				IF_FEATURE_TOP_SMP_PROCESS(, s->last_seen_on_cpu)
_______________________________________________
busybox-cvs mailing list
busybox-cvs@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox-cvs
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic