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(a)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