Let's make use of the auto __cleanup capabilities cleaning up any
now unnecessary goto paths.
Signed-off-by: John Ferlan <jferlan(a)redhat.com>
---
src/conf/domain_conf.c | 53 ++++++++++++++++--------------------------
1 file changed, 20 insertions(+), 33 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index ceeb247ef4..ddcb76f05d 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -1803,8 +1803,8 @@ virDomainDefGetVcpuPinInfoHelper(virDomainDefPtr def,
virBitmapPtr autoCpuset)
{
int maxvcpus = virDomainDefGetVcpusMax(def);
- virBitmapPtr allcpumap = NULL;
size_t i;
+ VIR_AUTOPTR(virBitmap) allcpumap = NULL;
if (hostcpus < 0)
return -1;
@@ -1831,7 +1831,6 @@ virDomainDefGetVcpuPinInfoHelper(virDomainDefPtr def,
virBitmapToDataBuf(bitmap, VIR_GET_CPUMAP(cpumaps, maplen, i), maplen);
}
- virBitmapFree(allcpumap);
return i;
}
@@ -2984,11 +2983,10 @@ static int
virDomainIOThreadIDDefArrayInit(virDomainDefPtr def,
unsigned int iothreads)
{
- int retval = -1;
size_t i;
ssize_t nxt = -1;
virDomainIOThreadIDDefPtr iothrid = NULL;
- virBitmapPtr thrmap = NULL;
+ VIR_AUTOPTR(virBitmap) thrmap = NULL;
/* Same value (either 0 or some number), then we have none to fill in or
* the iothreadid array was filled from the XML
@@ -2998,7 +2996,7 @@ virDomainIOThreadIDDefArrayInit(virDomainDefPtr def,
/* iothread's are numbered starting at 1, account for that */
if (!(thrmap = virBitmapNew(iothreads + 1)))
- goto error;
+ return -1;
virBitmapSetAll(thrmap);
/* Clear 0 since we don't use it, then mark those which are
@@ -3010,27 +3008,23 @@ virDomainIOThreadIDDefArrayInit(virDomainDefPtr def,
/* resize array */
if (VIR_REALLOC_N(def->iothreadids, iothreads) < 0)
- goto error;
+ return -1;
/* Populate iothreadids[] using the set bit number from thrmap */
while (def->niothreadids < iothreads) {
if ((nxt = virBitmapNextSetBit(thrmap, nxt)) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("failed to populate iothreadids"));
- goto error;
+ return -1;
}
if (VIR_ALLOC(iothrid) < 0)
- goto error;
+ return -1;
iothrid->iothread_id = nxt;
iothrid->autofill = true;
def->iothreadids[def->niothreadids++] = iothrid;
}
- retval = 0;
-
- error:
- virBitmapFree(thrmap);
- return retval;
+ return 0;
}
@@ -18327,9 +18321,9 @@ virDomainIOThreadPinDefParseXML(xmlNodePtr node,
{
int ret = -1;
virDomainIOThreadIDDefPtr iothrid;
- virBitmapPtr cpumask = NULL;
unsigned int iothreadid;
char *tmp = NULL;
+ VIR_AUTOPTR(virBitmap) cpumask = NULL;
if (!(tmp = virXMLPropString(node, "iothread"))) {
virReportError(VIR_ERR_XML_ERROR, "%s",
@@ -18385,7 +18379,6 @@ virDomainIOThreadPinDefParseXML(xmlNodePtr node,
cleanup:
VIR_FREE(tmp);
- virBitmapFree(cpumask);
return ret;
}
@@ -18397,8 +18390,9 @@ virDomainIOThreadPinDefParseXML(xmlNodePtr node,
static virBitmapPtr
virDomainEmulatorPinDefParseXML(xmlNodePtr node)
{
- virBitmapPtr def = NULL;
+ virBitmapPtr ret = NULL;
char *tmp = NULL;
+ VIR_AUTOPTR(virBitmap) def = NULL;
if (!(tmp = virXMLPropString(node, "cpuset"))) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
@@ -18412,14 +18406,14 @@ virDomainEmulatorPinDefParseXML(xmlNodePtr node)
if (virBitmapIsAllClear(def)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("Invalid value of 'cpuset': %s"), tmp);
- virBitmapFree(def);
- def = NULL;
goto cleanup;
}
+ VIR_STEAL_PTR(ret, def);
+
cleanup:
VIR_FREE(tmp);
- return def;
+ return ret;
}
@@ -18778,35 +18772,30 @@ virDomainThreadSchedParseHelper(xmlNodePtr node,
virDomainDefPtr def)
{
ssize_t next = -1;
- virBitmapPtr map = NULL;
virDomainThreadSchedParamPtr sched;
virProcessSchedPolicy policy;
int priority;
- int ret = -1;
+ VIR_AUTOPTR(virBitmap) map = NULL;
if (!(map = virDomainSchedulerParse(node, name, &policy, &priority)))
- goto cleanup;
+ return -1;
while ((next = virBitmapNextSetBit(map, next)) > -1) {
if (!(sched = func(def, next)))
- goto cleanup;
+ return -1;
if (sched->policy != VIR_PROC_POLICY_NONE) {
virReportError(VIR_ERR_XML_DETAIL,
_("%ssched attributes 'vcpus' must not
overlap"),
name);
- goto cleanup;
+ return -1;
}
sched->policy = policy;
sched->priority = priority;
}
- ret = 0;
-
- cleanup:
- virBitmapFree(map);
- return ret;
+ return 0;
}
@@ -19509,12 +19498,12 @@ virDomainCachetuneDefParse(virDomainDefPtr def,
{
xmlNodePtr oldnode = ctxt->node;
xmlNodePtr *nodes = NULL;
- virBitmapPtr vcpus = NULL;
virResctrlAllocPtr alloc = NULL;
virDomainResctrlDefPtr resctrl = NULL;
ssize_t i = 0;
int n;
int ret = -1;
+ VIR_AUTOPTR(virBitmap) vcpus = NULL;
ctxt->node = node;
@@ -19574,7 +19563,6 @@ virDomainCachetuneDefParse(virDomainDefPtr def,
ctxt->node = oldnode;
virDomainResctrlDefFree(resctrl);
virObjectUnref(alloc);
- virBitmapFree(vcpus);
VIR_FREE(nodes);
return ret;
}
@@ -19728,9 +19716,9 @@ virDomainMemorytuneDefParse(virDomainDefPtr def,
{
xmlNodePtr oldnode = ctxt->node;
xmlNodePtr *nodes = NULL;
- virBitmapPtr vcpus = NULL;
virResctrlAllocPtr alloc = NULL;
virDomainResctrlDefPtr resctrl = NULL;
+ VIR_AUTOPTR(virBitmap) vcpus = NULL;
ssize_t i = 0;
int n;
@@ -19789,7 +19777,6 @@ virDomainMemorytuneDefParse(virDomainDefPtr def,
ctxt->node = oldnode;
virDomainResctrlDefFree(resctrl);
virObjectUnref(alloc);
- virBitmapFree(vcpus);
VIR_FREE(nodes);
return ret;
}
--
2.20.1