Signed-off-by: Seeteena Thoufeek <s1seetee(a)linux.vnet.ibm.com>
---
src/cpu/cpu.c | 18 +++++++-----------
1 file changed, 7 insertions(+), 11 deletions(-)
diff --git a/src/cpu/cpu.c b/src/cpu/cpu.c
index 631c755..e556ffe 100644
--- a/src/cpu/cpu.c
+++ b/src/cpu/cpu.c
@@ -772,40 +772,36 @@ virCPUDataPtr
virCPUDataParse(const char *xmlStr)
{
struct cpuArchDriver *driver;
- xmlDocPtr xml = NULL;
- xmlXPathContextPtr ctxt = NULL;
+ g_autoptr(xmlDoc) xml = NULL;
+ g_autoptr(xmlXPathContext) ctxt = NULL;
virCPUDataPtr data = NULL;
- char *arch = NULL;
+ g_autofree char *arch = NULL;
VIR_DEBUG("xmlStr=%s", xmlStr);
if (!(xml = virXMLParseStringCtxt(xmlStr, _("CPU data"), &ctxt))) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("cannot parse CPU data"));
- goto cleanup;
+ return data;
}
if (!(arch = virXPathString("string(/cpudata/@arch)", ctxt))) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("missing CPU data architecture"));
- goto cleanup;
+ return data;
}
if (!(driver = cpuGetSubDriverByName(arch)))
- goto cleanup;
+ return data;
if (!driver->dataParse) {
virReportError(VIR_ERR_NO_SUPPORT,
_("cannot parse %s CPU data"), arch);
- goto cleanup;
+ return data;
}
data = driver->dataParse(ctxt);
- cleanup:
- xmlXPathFreeContext(ctxt);
- xmlFreeDoc(xml);
- VIR_FREE(arch);
return data;
}
--
1.8.3.1