Switch @xml and @pctxt to g_autofree and get rid of the "error" and
"cleanup" labels.
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
src/util/virxml.c | 22 +++++++---------------
1 file changed, 7 insertions(+), 15 deletions(-)
diff --git a/src/util/virxml.c b/src/util/virxml.c
index 029b3d646e..58d640546f 100644
--- a/src/util/virxml.c
+++ b/src/util/virxml.c
@@ -786,8 +786,8 @@ virXMLParseHelper(int domcode,
xmlXPathContextPtr *ctxt)
{
struct virParserData private;
- xmlParserCtxtPtr pctxt;
- xmlDocPtr xml = NULL;
+ g_autoptr(xmlParserCtxt) pctxt = NULL;
+ g_autoptr(xmlDoc) xml = NULL;
const char *docname;
if (filename)
@@ -823,32 +823,24 @@ virXMLParseHelper(int domcode,
docname);
}
- goto error;
+ return NULL;
}
if (xmlDocGetRootElement(xml) == NULL) {
virGenericReportError(domcode, VIR_ERR_INTERNAL_ERROR,
"%s", _("missing root element"));
- goto error;
+
+ return NULL;
}
if (ctxt) {
if (!(*ctxt = virXMLXPathContextNew(xml)))
- goto error;
+ return NULL;
(*ctxt)->node = xmlDocGetRootElement(xml);
}
- cleanup:
- xmlFreeParserCtxt(pctxt);
-
- return xml;
-
- error:
- xmlFreeDoc(xml);
- xml = NULL;
-
- goto cleanup;
+ return g_steal_pointer(&xml);
}
const char *virXMLPickShellSafeComment(const char *str1, const char *str2)
--
2.30.2