
On Fri, Apr 10, 2015 at 16:32:32 +0200, Ján Tomko wrote:
Use virBitmapDataToString instead of constructing the ranges bit by bit, remove the checking of parameters (that is already done by the callers).
Let the callers choose the right bitmap, since there's only one that uses this helper on a matrix-in-an-array. --- tools/virsh-domain.c | 41 ++++++++++------------------------------- 1 file changed, 10 insertions(+), 31 deletions(-)
diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c index 928360c..d5352d7 100644 --- a/tools/virsh-domain.c +++ b/tools/virsh-domain.c
...
@@ -6526,7 +6505,8 @@ cmdVcpuPin(vshControl *ctl, const vshCmd *cmd) continue;
vshPrint(ctl, "%4zu: ", i); - ret = vshPrintPinInfo(cpumap, cpumaplen, maxcpu, i); + ret = vshPrintPinInfo(VIR_GET_CPUMAP(cpumap, cpumaplen, i), + cpumaplen); vshPrint(ctl, "\n"); if (!ret) break; @@ -6643,12 +6623,12 @@ cmdEmulatorPin(vshControl *ctl, const vshCmd *cmd) flags = VIR_DOMAIN_AFFECT_CURRENT;
cpumaps = vshMalloc(ctl, cpumaplen); - if (virDomainGetEmulatorPinInfo(dom, cpumaps, + if (virDomainGetEmulatorPinInfo(dom, cpumap,
@cpumap is NULL at this point. virDomainGetEmulatorPinInfo() requires that it's non-NULL. Additionally after this change @cpumaps is unused just allocated and freed.
cpumaplen, flags) >= 0) { vshPrintExtra(ctl, "%s %s\n", _("emulator:"), _("CPU Affinity")); vshPrintExtra(ctl, "----------------------------------\n"); vshPrintExtra(ctl, " *: "); - ret = vshPrintPinInfo(cpumaps, cpumaplen, maxcpu, 0); + ret = vshPrintPinInfo(cpumap, cpumaplen); vshPrint(ctl, "\n"); } VIR_FREE(cpumaps);
ACK if you alocate @cpumap before the call and remove @cpumaps. Peter