From: Peter Krempa Date: Mon, 16 Sep 2019 11:43:44 +0000 (+0200) Subject: conf: domain: Refactor cleanup in virDomainDefParseNode X-Git-Tag: v5.8.0-rc1~134 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=db2c3c80c22ca99611f37424d57feb2beef24d5a;p=thirdparty%2Flibvirt.git 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 --- 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); }