[libvirt] [PATCH] Fix ref-counting for Xen driver event registration

Jim Meyering jim at meyering.net
Wed Jan 14 19:23:36 UTC 2009


john.levon at sun.com wrote:
> Fix ref-counting for Xen driver event registration
> diff --git a/src/xen_unified.c b/src/xen_unified.c
> --- a/src/xen_unified.c
> +++ b/src/xen_unified.c
> @@ -1359,15 +1359,21 @@ xenUnifiedDomainEventRegister (virConnec
>                                 void *opaque,
>                                 void (*freefunc)(void *))
>  {
> +    int ret;
> +
>      GET_PRIVATE (conn);
>      if (priv->xsWatch == -1) {
>          xenUnifiedError (conn, VIR_ERR_NO_SUPPORT, __FUNCTION__);
>          return -1;
>      }
>
> -    conn->refs++;
> -    return virDomainEventCallbackListAdd(conn, priv->domainEventCallbacks,
> -                                         callback, opaque, freefunc);
> +    ret = virDomainEventCallbackListAdd(conn, priv->domainEventCallbacks,
> +        callback, opaque, freefunc);

This looks like a fine change, too, but please adjust it not
to change the indentation of the above continuation line:

    ret = virDomainEventCallbackListAdd(conn, priv->domainEventCallbacks,
                                        callback, opaque, freefunc);

> +
> +    if (ret == 0)
> +        conn->refs++;
> +
> +    return (ret);
>  }
>
>  static int
> @@ -1382,8 +1388,10 @@ xenUnifiedDomainEventDeregister (virConn
>      }
>
>      ret = virDomainEventCallbackListRemove(conn, priv->domainEventCallbacks,
> -                                            callback);
> -    virUnrefConnect(conn);
> +        callback);

Same here.




More information about the libvir-list mailing list