]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
conf: domain: Refactor cleanup in virDomainDefParseNode
authorPeter Krempa <pkrempa@redhat.com>
Mon, 16 Sep 2019 11:43:44 +0000 (13:43 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Thu, 19 Sep 2019 12:31:15 +0000 (14:31 +0200)
Use VIR_AUTOPTR for temporary locals and get rid of the cleanup label.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
src/conf/domain_conf.c

index 5fec2e522088ea177a7ec78a45012c6ae85b4a62..35573c0aaf785c9122486862f116050607f07454 100644 (file)
@@ -21558,32 +21558,26 @@ virDomainDefParseNode(xmlDocPtr xml,
                       void *parseOpaque,
                       unsigned int flags)
 {
-    xmlXPathContextPtr ctxt = NULL;
-    virDomainDefPtr def = NULL;
-    virDomainDefPtr ret = NULL;
+    VIR_AUTOPTR(xmlXPathContext) ctxt = NULL;
+    VIR_AUTOPTR(virDomainDef) def = NULL;
 
     if (!(ctxt = virXMLXPathContextNew(xml)))
-        goto cleanup;
+        return NULL;
 
     ctxt->node = root;
 
     if (!(def = virDomainDefParseXML(xml, ctxt, caps, xmlopt, flags)))
-        goto cleanup;
+        return NULL;
 
     /* callback to fill driver specific domain aspects */
     if (virDomainDefPostParse(def, caps, flags, xmlopt, parseOpaque) < 0)
-        goto cleanup;
+        return NULL;
 
     /* validate configuration */
     if (virDomainDefValidate(def, caps, flags, xmlopt) < 0)
-        goto cleanup;
-
-    VIR_STEAL_PTR(ret, def);
+        return NULL;
 
- cleanup:
-    virDomainDefFree(def);
-    xmlXPathFreeContext(ctxt);
-    return ret;
+    VIR_RETURN_PTR(def);
 }