]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
cpu_map: Use g_auto* in cpuMapLoad
authorTim Wiederhake <twiederh@redhat.com>
Fri, 4 Sep 2020 12:26:07 +0000 (14:26 +0200)
committerJán Tomko <jtomko@redhat.com>
Fri, 4 Sep 2020 14:04:24 +0000 (16:04 +0200)
Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
src/cpu/cpu_map.c

index 913e34a067e5fc645d6ca083f105c53cf240ef50..cbf90d1395f3fdee2758bc373df4922fe7d3c4a7 100644 (file)
@@ -169,12 +169,11 @@ int cpuMapLoad(const char *arch,
                cpuMapLoadCallback modelCB,
                void *data)
 {
-    xmlDocPtr xml = NULL;
-    xmlXPathContextPtr ctxt = NULL;
+    g_autoptr(xmlDoc) xml = NULL;
+    g_autoptr(xmlXPathContext) ctxt = NULL;
     g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER;
-    char *xpath = NULL;
-    int ret = -1;
-    char *mapfile;
+    g_autofree char *xpath = NULL;
+    g_autofree char *mapfile = NULL;
 
     if (!(mapfile = virFileFindResource("index.xml",
                                         abs_top_srcdir "/src/cpu_map",
@@ -186,11 +185,11 @@ int cpuMapLoad(const char *arch,
     if (arch == NULL) {
         virReportError(VIR_ERR_INTERNAL_ERROR,
                        "%s", _("undefined hardware architecture"));
-        goto cleanup;
+        return -1;
     }
 
     if (!(xml = virXMLParseFileCtxt(mapfile, &ctxt)))
-        goto cleanup;
+        return -1;
 
     virBufferAsprintf(&buf, "./arch[@name='%s']", arch);
 
@@ -201,28 +200,20 @@ int cpuMapLoad(const char *arch,
     if ((ctxt->node = virXPathNode(xpath, ctxt)) == NULL) {
         virReportError(VIR_ERR_INTERNAL_ERROR,
                        _("cannot find CPU map for %s architecture"), arch);
-        goto cleanup;
+        return -1;
     }
 
     if (loadData(mapfile, ctxt, "vendor", vendorCB, data) < 0)
-        goto cleanup;
+        return -1;
 
     if (loadData(mapfile, ctxt, "feature", featureCB, data) < 0)
-        goto cleanup;
+        return -1;
 
     if (loadData(mapfile, ctxt, "model", modelCB, data) < 0)
-        goto cleanup;
+        return -1;
 
     if (loadIncludes(ctxt, vendorCB, featureCB, modelCB, data) < 0)
-        goto cleanup;
-
-    ret = 0;
-
- cleanup:
-    xmlXPathFreeContext(ctxt);
-    xmlFreeDoc(xml);
-    VIR_FREE(xpath);
-    VIR_FREE(mapfile);
+        return -1;
 
-    return ret;
+    return 0;
 }