]> granicus.if.org Git - procps-ng/commitdiff
library: some tweaks to 2 file read functions, 3rd gen
authorJim Warner <james.warner@comcast.net>
Sun, 3 Jul 2016 05:00:00 +0000 (00:00 -0500)
committerCraig Small <csmall@enc.com.au>
Wed, 6 Jul 2016 11:36:37 +0000 (21:36 +1000)
Ever since their introduction, plus continuing through
several evolutions, both the meminfo and vmstat 'read'
functions employed a 'do while' loop for /proc access.

However, that loop construct was wrong since identical
tests were already done (twice!) within each loop body
itself, then accompanied by its own 'break' statement.

So, we will now transform them both into forever loops
which will help us to emphasize such break statements.

[ plus, let's return an error should nothing be read ]

[ lastly, eliminate 1 erroneous PROCPS_EXPORT prefix ]

Reference(s):
. original meminfo introduction
commit a20e88e4e72067c1138721c6e15e2d1130bc9595
. original vmstat introduction
commit a410e236abb47c7c43194e61d0566686f81513af

Signed-off-by: Jim Warner <james.warner@comcast.net>
proc/meminfo.c
proc/vmstat.c

index 9be12d4ceefca6a7865a470dd9ede35a4a3c430d..302c2c68f4d198f39391136d9b2366a37ea82197 100644 (file)
@@ -534,7 +534,7 @@ static int make_hash_failed (
  * Read the data out of /proc/meminfo putting the information
  * into the supplied info structure
  */
-PROCPS_EXPORT int read_meminfo_failed (
+static int read_meminfo_failed (
         struct procps_meminfo *info)
 {
  /* a 'memory history reference' macro for readability,
@@ -570,11 +570,11 @@ PROCPS_EXPORT int read_meminfo_failed (
         break;
     }
     if (size == 0)
-        return 0;
+        return -1;
     buf[size] = '\0';
 
     head = buf;
-    do {
+    for (;;) {
         static ENTRY e;      // just to keep coverity off our backs (e.data)
         ENTRY *ep;
 
@@ -589,16 +589,15 @@ PROCPS_EXPORT int read_meminfo_failed (
             valptr = ep->data;
 
         head = tail+1;
-        if (valptr) {
+        if (valptr)
             *valptr = strtoul(head, &tail, 10);
-        }
 
         tail = strchr(head, '\n');
         if (!tail)
             break;
 
         head = tail + 1;
-    } while(tail);
+    }
 
     if (0 == mHr(MemAvailable))
         mHr(MemAvailable) = mHr(MemFree);
index 6de294a84ac0c241b7e11ad7bd21fdab3e4f2466..e9b4506ec70bd91b79be1818aa43199375670087 100644 (file)
@@ -995,11 +995,11 @@ static int read_vmstat_failed (
         break;
     }
     if (size == 0)
-        return 0;
+        return -1;
     buf[size] = '\0';
 
     head = buf;
-    do {
+    for (;;) {
         static ENTRY e;      // just to keep coverity off our backs (e.data)
         ENTRY *ep;
 
@@ -1022,7 +1022,7 @@ static int read_vmstat_failed (
             break;
 
         head = tail + 1;
-    } while(tail);
+    }
 
     // let's not distort the deltas the first time thru ...
     if (!info->vmstat_was_read)