mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 11:22:23 +00:00
conf: domain: Refactor cleanup in virSysinfoParseXML
Use automatic pointer freeing to remove the 'error' label. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
789d302e8d
commit
75849b7503
@ -12394,7 +12394,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;
|
||||
|
||||
@ -12404,32 +12404,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
|
||||
|
Loading…
x
Reference in New Issue
Block a user