[libvirt] [PATCH 2/2] Simplify virNodeCountThreadSiblings

Ján Tomko jtomko at redhat.com
Tue Jun 2 12:53:45 UTC 2015


Use a for cycle instead of while.

Do not opencode c_isxdigit and virHexToBin.
---
 src/nodeinfo.c | 12 +++---------
 1 file changed, 3 insertions(+), 9 deletions(-)

diff --git a/src/nodeinfo.c b/src/nodeinfo.c
index 9db3233..2fafe2d 100644
--- a/src/nodeinfo.c
+++ b/src/nodeinfo.c
@@ -361,15 +361,9 @@ virNodeCountThreadSiblings(const char *dir, unsigned int cpu)
     if (virFileReadAll(path, SYSFS_THREAD_SIBLINGS_LIST_LENGTH_MAX, &str) < 0)
         goto cleanup;
 
-    i = 0;
-    while (str[i] != '\0') {
-        if (c_isdigit(str[i]))
-            ret += count_one_bits(str[i] - '0');
-        else if (str[i] >= 'A' && str[i] <= 'F')
-            ret += count_one_bits(str[i] - 'A' + 10);
-        else if (str[i] >= 'a' && str[i] <= 'f')
-            ret += count_one_bits(str[i] - 'a' + 10);
-        i++;
+    for (i = 0; str[i] != '\0'; i++) {
+        if (c_isxdigit(str[i]))
+            ret += count_one_bits(virHexToBin(str[i]));
     }
 
  cleanup:
-- 
2.3.6




More information about the libvir-list mailing list