The 'error' label is just returning -1, so let's 'return -1'
directly.
Use g_autoptr() with virDomainControllerDefPtr to remove the
need to call virDomainControllerDefFree() in the error path.
There is no need to VIR_FREE(nodes) explictly since 'nodes'
is using g_autofree.
Signed-off-by: Daniel Henrique Barboza <danielhb413(a)gmail.com>
---
src/conf/domain_conf.c | 26 ++++++++++----------------
1 file changed, 10 insertions(+), 16 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 5630f72096..b794611b1e 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -21819,38 +21819,36 @@ virDomainDefControllersParse(virDomainDefPtr def,
int n;
if ((n = virXPathNodeSet("./devices/controller", ctxt, &nodes)) <
0)
- goto error;
+ return -1;
if (n)
def->controllers = g_new0(virDomainControllerDefPtr, n);
for (i = 0; i < n; i++) {
- virDomainControllerDefPtr controller = virDomainControllerDefParseXML(xmlopt,
- nodes[i],
- ctxt,
- flags);
+ g_autoptr(virDomainControllerDef) controller = NULL;
+
+ controller = virDomainControllerDefParseXML(xmlopt, nodes[i],
+ ctxt, flags);
if (!controller)
- goto error;
+ return -1;
/* sanitize handling of "none" usb controller */
if (controller->type == VIR_DOMAIN_CONTROLLER_TYPE_USB) {
if (controller->model == VIR_DOMAIN_CONTROLLER_MODEL_USB_NONE) {
if (usb_other || *usb_none) {
- virDomainControllerDefFree(controller);
virReportError(VIR_ERR_XML_DETAIL, "%s",
_("Can't add another USB controller: "
"USB is disabled for this domain"));
- goto error;
+ return -1;
}
*usb_none = true;
} else {
if (*usb_none) {
- virDomainControllerDefFree(controller);
virReportError(VIR_ERR_XML_DETAIL, "%s",
_("Can't add another USB controller: "
"USB is disabled for this domain"));
- goto error;
+ return -1;
}
usb_other = true;
}
@@ -21859,20 +21857,16 @@ virDomainDefControllersParse(virDomainDefPtr def,
usb_master = true;
}
- virDomainControllerInsertPreAlloced(def, controller);
+ virDomainControllerInsertPreAlloced(def, g_steal_pointer(&controller));
}
- VIR_FREE(nodes);
if (usb_other && !usb_master) {
virReportError(VIR_ERR_XML_DETAIL, "%s",
_("No master USB controller specified"));
- goto error;
+ return -1;
}
return 0;
-
- error:
- return -1;
}
static virDomainDefPtr
--
2.26.2