[libvirt] [PATCH v3 04/11] util: netlink: use VIR_AUTOPTR for aggregate types

Erik Skultety eskultet at redhat.com
Mon Aug 13 12:40:31 UTC 2018


On Thu, Aug 09, 2018 at 09:42:12AM +0530, Sukrit Bhatnagar wrote:
> By making use of GNU C's cleanup attribute handled by the
> VIR_AUTOPTR macro for declaring aggregate pointer variables,
> majority of the calls to *Free functions can be dropped, which
> in turn leads to getting rid of most of our cleanup sections.
>
> Signed-off-by: Sukrit Bhatnagar <skrtbhtngr at gmail.com>
> ---
>  src/util/virnetlink.c | 72 ++++++++++++++++++++-------------------------------
>  1 file changed, 28 insertions(+), 44 deletions(-)
>
> diff --git a/src/util/virnetlink.c b/src/util/virnetlink.c
> index fcdc09d..66e80e2 100644
> --- a/src/util/virnetlink.c
> +++ b/src/util/virnetlink.c
> @@ -297,15 +297,16 @@ int virNetlinkCommand(struct nl_msg *nl_msg,
>                        uint32_t src_pid, uint32_t dst_pid,
>                        unsigned int protocol, unsigned int groups)
>  {
> -    int ret = -1;
>      struct sockaddr_nl nladdr = {
>              .nl_family = AF_NETLINK,
>              .nl_pid    = dst_pid,
>              .nl_groups = 0,
>      };
>      struct pollfd fds[1];
> -    VIR_AUTOPTR(virNetlinkHandle) nlhandle = NULL;
>      int len = 0;
> +    VIR_AUTOPTR(virNetlinkHandle) nlhandle = NULL;

unjustified code movement...

> +
> +    *respbuflen = 0;

unnecessary initialization..

>
>      memset(fds, 0, sizeof(fds));
>
> @@ -324,15 +325,12 @@ int virNetlinkCommand(struct nl_msg *nl_msg,
>          goto cleanup;
>      }
>
> -    ret = 0;
>      *respbuflen = len;
> - cleanup:
> -    if (ret < 0) {
> -        *resp = NULL;
> -        *respbuflen = 0;
> -    }
> +    return 0;
>
> -    return ret;
> + cleanup:
> +    *resp = NULL;
> +    return -1;

I moved ^this hunk into the previous patch as I converted 1 more var into
VIR_AUTOFREE.

Reviewed-by: Erik Skultety <eskultet at redhat.com>




More information about the libvir-list mailing list