mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-23 06:05:27 +00:00
conf: domain: Refactor cleanup in virDomainDefParseNode
Use VIR_AUTOPTR for temporary locals and get rid of the cleanup label. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
This commit is contained in:
parent
f02b4fc4ea
commit
db2c3c80c2
@ -21558,32 +21558,26 @@ virDomainDefParseNode(xmlDocPtr xml,
|
||||
void *parseOpaque,
|
||||
unsigned int flags)
|
||||
{
|
||||
xmlXPathContextPtr ctxt = NULL;
|
||||
virDomainDefPtr def = NULL;
|
||||
virDomainDefPtr ret = NULL;
|
||||
VIR_AUTOPTR(xmlXPathContext) ctxt = NULL;
|
||||
VIR_AUTOPTR(virDomainDef) def = NULL;
|
||||
|
||||
if (!(ctxt = virXMLXPathContextNew(xml)))
|
||||
goto cleanup;
|
||||
return NULL;
|
||||
|
||||
ctxt->node = root;
|
||||
|
||||
if (!(def = virDomainDefParseXML(xml, ctxt, caps, xmlopt, flags)))
|
||||
goto cleanup;
|
||||
return NULL;
|
||||
|
||||
/* callback to fill driver specific domain aspects */
|
||||
if (virDomainDefPostParse(def, caps, flags, xmlopt, parseOpaque) < 0)
|
||||
goto cleanup;
|
||||
return NULL;
|
||||
|
||||
/* validate configuration */
|
||||
if (virDomainDefValidate(def, caps, flags, xmlopt) < 0)
|
||||
goto cleanup;
|
||||
return NULL;
|
||||
|
||||
VIR_STEAL_PTR(ret, def);
|
||||
|
||||
cleanup:
|
||||
virDomainDefFree(def);
|
||||
xmlXPathFreeContext(ctxt);
|
||||
return ret;
|
||||
VIR_RETURN_PTR(def);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user