Use g_autofree for the temporary variables, remove error checks for virBitmapFormat and simplify formatting of multiple attributes. Signed-off-by: Peter Krempa <pkrempa@xxxxxxxxxx> --- src/conf/domain_conf.c | 28 ++++++++-------------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 1da59cf83a..c79831fe0b 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -27479,47 +27479,35 @@ virDomainCputuneDefFormat(virBuffer *buf, def->cputune.iothread_quota); for (i = 0; i < def->maxvcpus; i++) { - char *cpumask; + g_autofree char *cpumask = NULL; virDomainVcpuDef *vcpu = def->vcpus[i]; if (!vcpu->cpumask) continue; - if (!(cpumask = virBitmapFormat(vcpu->cpumask))) - return -1; + cpumask = virBitmapFormat(vcpu->cpumask); virBufferAsprintf(&childrenBuf, "<vcpupin vcpu='%zu' cpuset='%s'/>\n", i, cpumask); - - VIR_FREE(cpumask); } if (def->cputune.emulatorpin) { - char *cpumask; - virBufferAddLit(&childrenBuf, "<emulatorpin "); - - if (!(cpumask = virBitmapFormat(def->cputune.emulatorpin))) - return -1; + g_autofree char *cpumask = virBitmapFormat(def->cputune.emulatorpin); - virBufferAsprintf(&childrenBuf, "cpuset='%s'/>\n", cpumask); - VIR_FREE(cpumask); + virBufferAsprintf(&childrenBuf, "<emulatorpin cpuset='%s'/>\n", cpumask); } for (i = 0; i < def->niothreadids; i++) { - char *cpumask; + g_autofree char *cpumask = NULL; /* Ignore iothreadids with no cpumask */ if (!def->iothreadids[i]->cpumask) continue; - virBufferAsprintf(&childrenBuf, "<iothreadpin iothread='%u' ", - def->iothreadids[i]->iothread_id); - - if (!(cpumask = virBitmapFormat(def->iothreadids[i]->cpumask))) - return -1; + cpumask = virBitmapFormat(def->iothreadids[i]->cpumask); - virBufferAsprintf(&childrenBuf, "cpuset='%s'/>\n", cpumask); - VIR_FREE(cpumask); + virBufferAsprintf(&childrenBuf, "<iothreadpin iothread='%u' cpuset='%s'/>\n", + def->iothreadids[i]->iothread_id, cpumask); } if (def->cputune.emulatorsched) { -- 2.48.1