[libvirt PATCH 01/15] cpu_map: Use g_auto* in loadData

Tim Wiederhake twiederh at redhat.com
Mon Sep 7 14:58:52 UTC 2020


Signed-off-by: Tim Wiederhake <twiederh at redhat.com>
---
 src/cpu/cpu_map.c | 20 ++++++++------------
 1 file changed, 8 insertions(+), 12 deletions(-)

diff --git a/src/cpu/cpu_map.c b/src/cpu/cpu_map.c
index cbf90d1395..c315ab32b2 100644
--- a/src/cpu/cpu_map.c
+++ b/src/cpu/cpu_map.c
@@ -32,6 +32,8 @@
 
 VIR_LOG_INIT("cpu.cpu_map");
 
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(xmlNodePtr, g_free);
+
 static int
 loadData(const char *mapfile,
          xmlXPathContextPtr ctxt,
@@ -39,20 +41,19 @@ loadData(const char *mapfile,
          cpuMapLoadCallback callback,
          void *data)
 {
-    int ret = -1;
     VIR_XPATH_NODE_AUTORESTORE(ctxt)
-    xmlNodePtr *nodes = NULL;
+    g_autoptr(xmlNodePtr) nodes = NULL;
     int n;
     size_t i;
     int rv;
 
     if ((n = virXPathNodeSet(element, ctxt, &nodes)) < 0)
-        goto cleanup;
+        return -1;
 
     if (n > 0 && !callback) {
         virReportError(VIR_ERR_INTERNAL_ERROR,
                        _("Unexpected element '%s' in CPU map '%s'"), element, mapfile);
-        goto cleanup;
+        return -1;
     }
 
     for (i = 0; i < n; i++) {
@@ -60,22 +61,17 @@ loadData(const char *mapfile,
         if (!name) {
             virReportError(VIR_ERR_INTERNAL_ERROR,
                            _("cannot find %s name in CPU map '%s'"), element, mapfile);
-            goto cleanup;
+            return -1;
         }
         VIR_DEBUG("Load %s name %s", element, name);
         ctxt->node = nodes[i];
         rv = callback(ctxt, name, data);
         VIR_FREE(name);
         if (rv < 0)
-            goto cleanup;
+            return -1;
     }
 
-    ret = 0;
-
- cleanup:
-    VIR_FREE(nodes);
-
-    return ret;
+    return 0;
 }
 
 static int
-- 
2.26.2




More information about the libvir-list mailing list