[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