From db2c3c80c22ca99611f37424d57feb2beef24d5a Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Mon, 16 Sep 2019 13:43:44 +0200 Subject: [PATCH] conf: domain: Refactor cleanup in virDomainDefParseNode Use VIR_AUTOPTR for temporary locals and get rid of the cleanup label. Signed-off-by: Peter Krempa Reviewed-by: Jiri Denemark --- src/conf/domain_conf.c | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 5fec2e5220..35573c0aaf 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -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; - - VIR_STEAL_PTR(ret, def); + return NULL; - cleanup: - virDomainDefFree(def); - xmlXPathFreeContext(ctxt); - return ret; + VIR_RETURN_PTR(def); } -- GitLab