From: Peter Krempa Date: Wed, 14 Apr 2021 11:06:51 +0000 (+0200) Subject: virXMLParseHelper: Refactor cleanup X-Git-Tag: v7.3.0-rc1~195 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=638007f916b1d6a55483281130ce7379acf35ff4;p=thirdparty%2Flibvirt.git virXMLParseHelper: Refactor cleanup Switch @xml and @pctxt to g_autofree and get rid of the "error" and "cleanup" labels. Signed-off-by: Peter Krempa Reviewed-by: Tim Wiederhake --- 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)