function                                             old     new   delta
skip_whitespace_if_prefixed_with                       -      37     +37
procps_read_smaps                                    954     841    -113
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/1 up/down: 37/-113)           Total: -76 bytes
   text    data     bss     dec     hex filename
 981418   16915    1872 1000205   f430d busybox_old
 981342   16915    1872 1000129   f42c1 busybox_unstripped

Signed-off-by: Martin Lewis <martin.lewis....@gmail.com>
---
 libbb/procps.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/libbb/procps.c b/libbb/procps.c
index af3ad86ff..c7ce45977 100644
--- a/libbb/procps.c
+++ b/libbb/procps.c
@@ -177,6 +177,15 @@ static char *skip_fields(char *str, int count)
 }
 #endif
 
+static int skip_whitespace_if_prefixed_with(char *buf, const char *prefix, 
char **tp) {
+       *tp = is_prefixed_with(buf, prefix);
+       if (*tp) {
+               *tp = skip_whitespace(*tp);
+               return TRUE;
+       }
+       return FALSE;
+}
+
 #if ENABLE_FEATURE_TOPMEM || ENABLE_PMAP
 int FAST_FUNC procps_read_smaps(pid_t pid, struct smaprec *total,
                void (*cb)(struct smaprec *, void *), void *data)
@@ -207,8 +216,7 @@ int FAST_FUNC procps_read_smaps(pid_t pid, struct smaprec 
*total,
                char *tp, *p;
 
 #define SCAN(S, X) \
-               if ((tp = is_prefixed_with(buf, S)) != NULL) {       \
-                       tp = skip_whitespace(tp);                    \
+               if (skip_whitespace_if_prefixed_with(buf, S, &tp)) {       \
                        total->X += currec.X = fast_strtoul_10(&tp); \
                        continue;                                    \
                }
-- 
2.11.0

_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to