Re: [libvirt] [PATCH 4/9] conf: Use automatic pointers for xmlXPathContext

2019-09-18 Thread Jiri Denemark
On Mon, Sep 16, 2019 at 14:17:07 +0200, Peter Krempa wrote:
> Clean up functions which grab and free the context to use VIR_AUTOPTR.
> 
> Signed-off-by: Peter Krempa 
> ---
>  src/conf/checkpoint_conf.c  | 12 
>  src/conf/domain_conf.c  | 13 -
>  src/conf/interface_conf.c   | 11 +++
>  src/conf/network_conf.c | 11 +++
>  src/conf/node_device_conf.c | 11 +++
>  src/conf/nwfilter_conf.c| 13 -
>  src/conf/snapshot_conf.c| 16 ++--
>  src/conf/storage_conf.c | 24 
>  8 files changed, 35 insertions(+), 76 deletions(-)

Reviewed-by: Jiri Denemark 

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


[libvirt] [PATCH 4/9] conf: Use automatic pointers for xmlXPathContext

2019-09-16 Thread Peter Krempa
Clean up functions which grab and free the context to use VIR_AUTOPTR.

Signed-off-by: Peter Krempa 
---
 src/conf/checkpoint_conf.c  | 12 
 src/conf/domain_conf.c  | 13 -
 src/conf/interface_conf.c   | 11 +++
 src/conf/network_conf.c | 11 +++
 src/conf/node_device_conf.c | 11 +++
 src/conf/nwfilter_conf.c| 13 -
 src/conf/snapshot_conf.c| 16 ++--
 src/conf/storage_conf.c | 24 
 8 files changed, 35 insertions(+), 76 deletions(-)

diff --git a/src/conf/checkpoint_conf.c b/src/conf/checkpoint_conf.c
index 113d85cc14..5c998267aa 100644
--- a/src/conf/checkpoint_conf.c
+++ b/src/conf/checkpoint_conf.c
@@ -209,13 +209,12 @@ virDomainCheckpointDefParseNode(xmlDocPtr xml,
 void *parseOpaque,
 unsigned int flags)
 {
-xmlXPathContextPtr ctxt = NULL;
-virDomainCheckpointDefPtr def = NULL;
+VIR_AUTOPTR(xmlXPathContext) ctxt = NULL;
 VIR_AUTOFREE(char *) schema = NULL;

 if (!virXMLNodeNameEqual(root, "domaincheckpoint")) {
 virReportError(VIR_ERR_XML_ERROR, "%s", _("domaincheckpoint"));
-goto cleanup;
+return NULL;
 }

 /* This is a new enough API to make schema validation unconditional */
@@ -228,13 +227,10 @@ virDomainCheckpointDefParseNode(xmlDocPtr xml,
 return NULL;

 if (!(ctxt = virXMLXPathContextNew(xml)))
-goto cleanup;
+return NULL;

 ctxt->node = root;
-def = virDomainCheckpointDefParse(ctxt, caps, xmlopt, parseOpaque, flags);
- cleanup:
-xmlXPathFreeContext(ctxt);
-return def;
+return virDomainCheckpointDefParse(ctxt, caps, xmlopt, parseOpaque, flags);
 }

 virDomainCheckpointDefPtr
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 2fe591c328..0ab69a9366 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -21600,26 +21600,21 @@ virDomainObjParseNode(xmlDocPtr xml,
   virDomainXMLOptionPtr xmlopt,
   unsigned int flags)
 {
-xmlXPathContextPtr ctxt = NULL;
-virDomainObjPtr obj = NULL;
+VIR_AUTOPTR(xmlXPathContext) ctxt = NULL;

 if (!virXMLNodeNameEqual(root, "domstatus")) {
 virReportError(VIR_ERR_XML_ERROR,
_("unexpected root element <%s>, "
  "expecting "),
root->name);
-goto cleanup;
+return NULL;
 }

 if (!(ctxt = virXMLXPathContextNew(xml)))
-goto cleanup;
+return NULL;

 ctxt->node = root;
-obj = virDomainObjParseXML(xml, ctxt, caps, xmlopt, flags);
-
- cleanup:
-xmlXPathFreeContext(ctxt);
-return obj;
+return virDomainObjParseXML(xml, ctxt, caps, xmlopt, flags);
 }


diff --git a/src/conf/interface_conf.c b/src/conf/interface_conf.c
index 64729aea43..2b65a235ea 100644
--- a/src/conf/interface_conf.c
+++ b/src/conf/interface_conf.c
@@ -819,8 +819,7 @@ virInterfaceDefPtr
 virInterfaceDefParseNode(xmlDocPtr xml,
  xmlNodePtr root)
 {
-xmlXPathContextPtr ctxt = NULL;
-virInterfaceDefPtr def = NULL;
+VIR_AUTOPTR(xmlXPathContext) ctxt = NULL;

 if (!virXMLNodeNameEqual(root, "interface")) {
 virReportError(VIR_ERR_XML_ERROR,
@@ -831,14 +830,10 @@ virInterfaceDefParseNode(xmlDocPtr xml,
 }

 if (!(ctxt = virXMLXPathContextNew(xml)))
-goto cleanup;
+return NULL;

 ctxt->node = root;
-def = virInterfaceDefParseXML(ctxt, VIR_INTERFACE_TYPE_LAST);
-
- cleanup:
-xmlXPathFreeContext(ctxt);
-return def;
+return virInterfaceDefParseXML(ctxt, VIR_INTERFACE_TYPE_LAST);
 }


diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c
index b65fb1f67a..9990d5e79d 100644
--- a/src/conf/network_conf.c
+++ b/src/conf/network_conf.c
@@ -2114,8 +2114,7 @@ virNetworkDefParseNode(xmlDocPtr xml,
xmlNodePtr root,
virNetworkXMLOptionPtr xmlopt)
 {
-xmlXPathContextPtr ctxt = NULL;
-virNetworkDefPtr def = NULL;
+VIR_AUTOPTR(xmlXPathContext) ctxt = NULL;

 if (!virXMLNodeNameEqual(root, "network")) {
 virReportError(VIR_ERR_XML_ERROR,
@@ -2126,14 +2125,10 @@ virNetworkDefParseNode(xmlDocPtr xml,
 }

 if (!(ctxt = virXMLXPathContextNew(xml)))
-goto cleanup;
+return NULL;

 ctxt->node = root;
-def = virNetworkDefParseXML(ctxt, xmlopt);
-
- cleanup:
-xmlXPathFreeContext(ctxt);
-return def;
+return virNetworkDefParseXML(ctxt, xmlopt);
 }


diff --git a/src/conf/node_device_conf.c b/src/conf/node_device_conf.c
index 8f8830aef1..84fcbd3e78 100644
--- a/src/conf/node_device_conf.c
+++ b/src/conf/node_device_conf.c
@@ -2052,8 +2052,7 @@ virNodeDeviceDefParseNode(xmlDocPtr xml,
   int create,
   const char *virt_type)
 {
-xmlXPathContextPtr ctxt = NULL;
-virNodeDeviceDefPtr def