Use automatic pointer freeing to remove the 'error' label.
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
src/conf/domain_conf.c | 16 +++++-----------
1 file changed, 5 insertions(+), 11 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index b9494500e2..71997e586a 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -12450,7 +12450,7 @@ virSysinfoParseXML(xmlNodePtr node,
bool uuid_generated)
{
VIR_XPATH_NODE_AUTORESTORE(ctxt)
- virSysinfoDef *def;
+ g_autoptr(virSysinfoDef) def = g_new0(virSysinfoDef, 1);
ctxt->node = node;
@@ -12460,32 +12460,26 @@ virSysinfoParseXML(xmlNodePtr node,
return NULL;
}
- def = g_new0(virSysinfoDef, 1);
-
if (virXMLPropEnum(node, "type", virSysinfoTypeFromString,
VIR_XML_PROP_REQUIRED, &def->type) < 0)
- goto error;
+ return NULL;
switch (def->type) {
case VIR_SYSINFO_SMBIOS:
if (virSysinfoParseSMBIOSDef(def, ctxt, domUUID, uuid_generated) < 0)
- goto error;
+ return NULL;
break;
case VIR_SYSINFO_FWCFG:
if (virSysinfoParseFWCfgDef(def, node, ctxt) < 0)
- goto error;
+ return NULL;
break;
case VIR_SYSINFO_LAST:
break;
}
- return def;
-
- error:
- virSysinfoDefFree(def);
- return NULL;
+ return g_steal_pointer(&def);
}
unsigned int
--
2.37.3