[Spice-devel] [PATCH 06/11] make red_pipe_item_ref more typesafe
Jonathon Jongsma
jjongsma at redhat.com
Fri May 20 20:34:11 UTC 2016
Acked-by: Jonathon Jongsma <jjongsma at redhat.com>
On Fri, 2016-05-20 at 14:01 +0100, Frediano Ziglio wrote:
> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> ---
> server/red-pipe-item.c | 4 +---
> server/red-pipe-item.h | 2 +-
> server/reds.c | 2 +-
> server/spicevmc.c | 4 ++--
> 4 files changed, 5 insertions(+), 7 deletions(-)
>
> diff --git a/server/red-pipe-item.c b/server/red-pipe-item.c
> index cc0ab5a..74bf267 100644
> --- a/server/red-pipe-item.c
> +++ b/server/red-pipe-item.c
> @@ -20,10 +20,8 @@
> #include "red-channel.h"
> #include "red-pipe-item.h"
>
> -RedPipeItem *red_pipe_item_ref(gpointer object)
> +RedPipeItem *red_pipe_item_ref(RedPipeItem *item)
> {
> - RedPipeItem *item = object;
> -
> g_return_val_if_fail(item->refcount > 0, NULL);
>
> g_atomic_int_inc(&item->refcount);
> diff --git a/server/red-pipe-item.h b/server/red-pipe-item.h
> index 4b3d892..0138216 100644
> --- a/server/red-pipe-item.h
> +++ b/server/red-pipe-item.h
> @@ -36,7 +36,7 @@ typedef struct RedPipeItem {
> } RedPipeItem;
>
> void red_pipe_item_init_full(RedPipeItem *item, int type,
> red_pipe_item_free_t free_func);
> -RedPipeItem *red_pipe_item_ref(gpointer item);
> +RedPipeItem *red_pipe_item_ref(RedPipeItem *item);
> void red_pipe_item_unref(gpointer item);
>
> static inline int red_pipe_item_is_linked(RedPipeItem *item)
> diff --git a/server/reds.c b/server/reds.c
> index 8a903b7..8ea6098 100644
> --- a/server/reds.c
> +++ b/server/reds.c
> @@ -910,7 +910,7 @@ static void vdi_port_send_msg_to_client(RedPipeItem *msg,
> {
> RedVDIReadBuf *agent_data_buf = (RedVDIReadBuf *)msg;
>
> - red_pipe_item_ref(agent_data_buf);
> + red_pipe_item_ref(msg);
> main_channel_client_push_agent_data(red_client_get_main(client),
> agent_data_buf->data,
> agent_data_buf->len,
> diff --git a/server/spicevmc.c b/server/spicevmc.c
> index 1e68909..f46b9e5 100644
> --- a/server/spicevmc.c
> +++ b/server/spicevmc.c
> @@ -145,10 +145,10 @@ static void
> spicevmc_chardev_send_msg_to_client(RedPipeItem *msg,
> void *opaque)
> {
> SpiceVmcState *state = opaque;
> - RedVmcPipeItem *vmc_msg = (RedVmcPipeItem *)msg;
> + RedVmcPipeItem *vmc_msg = SPICE_CONTAINEROF(msg, RedVmcPipeItem, base);
>
> spice_assert(state->rcc->client == client);
> - red_pipe_item_ref(vmc_msg);
> + red_pipe_item_ref(msg);
> red_channel_client_pipe_add_push(state->rcc, (RedPipeItem *)vmc_msg);
> }
>
More information about the Spice-devel
mailing list