]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
vbox: snapshot_conf: Don't allocate XPath context explicitly
authorPeter Krempa <pkrempa@redhat.com>
Thu, 22 Sep 2022 13:12:20 +0000 (15:12 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Thu, 6 Oct 2022 08:54:24 +0000 (10:54 +0200)
Use the one provided via virXMLParse.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/vbox/vbox_snapshot_conf.c

index 6dce9cdf0fbcc3c698206c5c620909916ddffdaf..e175f1964e7f5376e38fc7ae7d6f68ec8dd3d172 100644 (file)
@@ -584,15 +584,12 @@ virVBoxSnapshotConfLoadVboxFile(const char *filePath,
 
     machineDescription = g_new0(virVBoxSnapshotConfMachine, 1);
 
-    xml = virXMLParse(filePath, NULL, NULL, NULL, NULL, NULL, false);
+    xml = virXMLParse(filePath, NULL, NULL, NULL, &xPathContext, NULL, false);
     if (xml == NULL) {
         virReportError(VIR_ERR_XML_ERROR, "%s",
                        _("Unable to parse the xml"));
         goto cleanup;
     }
-    if (!(xPathContext = virXMLXPathContextNew(xml)))
-        goto cleanup;
-
     if (xmlXPathRegisterNs(xPathContext,
                            BAD_CAST "vbox",
                            BAD_CAST VBOX_SETTINGS_NS) < 0) {
@@ -603,8 +600,6 @@ virVBoxSnapshotConfLoadVboxFile(const char *filePath,
     }
 
     /* Retrieve MachineNode */
-    cur = xmlDocGetRootElement(xml);
-    xPathContext->node = cur;
     machineNode = virXPathNode("./vbox:Machine", xPathContext);
     if (machineNode == NULL) {
         virReportError(VIR_ERR_XML_ERROR, "%s",
@@ -1214,17 +1209,13 @@ virVBoxSnapshotConfGetRWDisksPathsFromLibvirtXML(const char *filePath,
                        _("filePath is null"));
         goto cleanup;
     }
-    xml = virXMLParse(filePath, NULL, NULL, NULL, NULL, NULL, false);
+    xml = virXMLParse(filePath, NULL, NULL, NULL, &xPathContext, NULL, false);
     if (xml == NULL) {
         virReportError(VIR_ERR_XML_ERROR, "%s",
                        _("Unable to parse the xml"));
         goto cleanup;
     }
 
-    if (!(xPathContext = virXMLXPathContextNew(xml)))
-        goto cleanup;
-
-    xPathContext->node = xmlDocGetRootElement(xml);
     if ((nodeSize = virXPathNodeSet("/domainsnapshot/disks/disk",
                                     xPathContext, &nodes)) < 0)
         goto cleanup;
@@ -1271,17 +1262,13 @@ virVBoxSnapshotConfGetRODisksPathsFromLibvirtXML(const char *filePath,
                        _("filePath is null"));
         goto cleanup;
     }
-    xml = virXMLParse(filePath, NULL, NULL, NULL, NULL, NULL, false);
+    xml = virXMLParse(filePath, NULL, NULL, NULL, &xPathContext, NULL, false);
     if (xml == NULL) {
         virReportError(VIR_ERR_XML_ERROR, "%s",
                        _("Unable to parse the xml"));
         goto cleanup;
     }
 
-    if (!(xPathContext = virXMLXPathContextNew(xml)))
-        goto cleanup;
-
-    xPathContext->node = xmlDocGetRootElement(xml);
     if ((nodeSize = virXPathNodeSet("/domainsnapshot/domain/devices/disk",
                                     xPathContext,
                                     &nodes)) < 0)