]> xenbits.xensource.com Git - libvirt.git/commitdiff
util: uuid: remove use of virHexToBin
authorJán Tomko <jtomko@redhat.com>
Sun, 23 Feb 2020 19:58:53 +0000 (20:58 +0100)
committerJán Tomko <jtomko@redhat.com>
Mon, 24 Feb 2020 19:25:48 +0000 (20:25 +0100)
Prefer g_ascii_xdigit_value to virHexToBin.

Check the return value of the function and
remove the g_ascii_isxdigit calls, since
they're done anyway internally.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Laine Stump <laine@redhat.com>
src/util/viruuid.c

index c8ee59beee04744be1ec53ae8407aaa05bb0c97f..908b09945d32bc9a1d4288d7e6e7a7e6fd80d801 100644 (file)
@@ -29,7 +29,6 @@
 #include <unistd.h>
 
 #include "internal.h"
-#include "virutil.h"
 #include "virerror.h"
 #include "virlog.h"
 #include "viralloc.h"
@@ -105,6 +104,7 @@ virUUIDParse(const char *uuidstr, unsigned char *uuid)
         cur++;
 
     for (i = 0; i < VIR_UUID_BUFLEN;) {
+        int val;
         uuid[i] = 0;
         if (*cur == 0)
             return -1;
@@ -112,16 +112,15 @@ virUUIDParse(const char *uuidstr, unsigned char *uuid)
             cur++;
             continue;
         }
-        if (!g_ascii_isxdigit(*cur))
+        if ((val = g_ascii_xdigit_value(*cur)) < 0)
             return -1;
-        uuid[i] = virHexToBin(*cur);
-        uuid[i] *= 16;
+        uuid[i] = 16 * val;
         cur++;
         if (*cur == 0)
             return -1;
-        if (!g_ascii_isxdigit(*cur))
+        if ((val = g_ascii_xdigit_value(*cur)) < 0)
             return -1;
-        uuid[i] += virHexToBin(*cur);
+        uuid[i] += val;
         i++;
         cur++;
     }