[libvirt] [PATCH v2 1/2] virsh: Slightly rework cmdDomblklist
Michal Privoznik
mprivozn at redhat.com
Mon Sep 7 09:06:12 UTC 2015
On 07.09.2015 09:23, Martin Kletzander wrote:
> On Wed, Sep 02, 2015 at 05:58:18PM +0200, Michal Privoznik wrote:
>> Let's move some variables from an inside loop to global function
>> declaration header block. It's going to be easier for next
>> patches. At the same time, order the cleanup calls at the
>> function's end so it's easier to track which variables are freed
>> and which not.
>>
>> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
>> ---
>> tools/virsh-domain-monitor.c | 29 ++++++++++++++---------------
>> 1 file changed, 14 insertions(+), 15 deletions(-)
>>
>
> I did not follow the discussion around 2/2, but this one does not do
> any functional change and cleans up the code nicely, so ACK ... [1]
Pushed, thanks.
>
>> diff --git a/tools/virsh-domain-monitor.c b/tools/virsh-domain-monitor.c
>> index 340a8e2..d4e500b 100644
>> --- a/tools/virsh-domain-monitor.c
>> +++ b/tools/virsh-domain-monitor.c
>> @@ -549,24 +544,28 @@ cmdDomblklist(vshControl *ctl, const vshCmd *cmd)
>> if (details) {
>> vshPrint(ctl, "%-10s %-10s %-10s %s\n", type, device,
>> target, source ? source : "-");
>> - VIR_FREE(type);
>> - VIR_FREE(device);
>> } else {
>> vshPrint(ctl, "%-10s %s\n", target, source ? source : "-");
>> }
>>
>> - VIR_FREE(target);
>> VIR_FREE(source);
>> + VIR_FREE(target);
>> + VIR_FREE(device);
>> + VIR_FREE(type);
>> }
>>
>> ret = true;
>>
>> cleanup:
>> + VIR_FREE(source);
>> + VIR_FREE(target);
>> + VIR_FREE(device);
>> + VIR_FREE(type);
>> VIR_FREE(disks);
>> - virDomainFree(dom);
>> - VIR_FREE(xml);
>> - xmlFreeDoc(xmldoc);
>> xmlXPathFreeContext(ctxt);
>> + xmlFreeDoc(xmldoc);
>> + VIR_FREE(xml);
>> + virDomainFree(dom);
>
> [1] ... even though I don't understand why these are reordered.
>
It's explained in the commit message. I always felt like cleanup should
follow the order laid out by variable definition at function beginning,
or in reversed order. If it is random, it's harder to spot a leaking
variable.
Michal
More information about the libvir-list
mailing list