[Spice-devel] [PATCH 16/23] use a default release_item implementation in RedChannel
Jonathon Jongsma
jjongsma at redhat.com
Tue May 17 20:06:55 UTC 2016
Acked-by: Jonathon Jongsma <jjongsma at redhat.com>
On Mon, 2016-05-16 at 14:31 +0100, Frediano Ziglio wrote:
> Avoid having to provide a lot of empty implementations
>
> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> ---
> server/cursor-channel.c | 6 ------
> server/display-channel.c | 6 ------
> server/inputs-channel.c | 7 -------
> server/red-channel.c | 10 +++++++++-
> server/smartcard.c | 7 -------
> server/spicevmc.c | 8 --------
> 6 files changed, 9 insertions(+), 35 deletions(-)
>
> diff --git a/server/cursor-channel.c b/server/cursor-channel.c
> index b0fd95f..c0b2fda 100644
> --- a/server/cursor-channel.c
> +++ b/server/cursor-channel.c
> @@ -359,11 +359,6 @@ static void
> cursor_channel_hold_pipe_item(RedChannelClient *rcc, RedPipeItem *it
> cursor_pipe_item_ref(cursor_pipe_item);
> }
>
> -static void cursor_channel_release_item(RedChannelClient *rcc, RedPipeItem
> *item, int item_pushed)
> -{
> - red_pipe_item_unref(item);
> -}
> -
> CursorChannel* cursor_channel_new(RedWorker *worker)
> {
> CursorChannel *cursor_channel;
> @@ -372,7 +367,6 @@ CursorChannel* cursor_channel_new(RedWorker *worker)
> .on_disconnect = cursor_channel_client_on_disconnect,
> .send_item = cursor_channel_send_item,
> .hold_item = cursor_channel_hold_pipe_item,
> - .release_item = cursor_channel_release_item
> };
>
> spice_info("create cursor channel");
> diff --git a/server/display-channel.c b/server/display-channel.c
> index b559a4e..5ef7920 100644
> --- a/server/display-channel.c
> +++ b/server/display-channel.c
> @@ -1979,11 +1979,6 @@ static void hold_item(RedChannelClient *rcc,
> RedPipeItem *item)
> }
> }
>
> -static void release_item(RedChannelClient *rcc, RedPipeItem *item, int
> item_pushed)
> -{
> - red_pipe_item_unref(item);
> -}
> -
> static int handle_migrate_flush_mark(RedChannelClient *rcc)
> {
> DisplayChannel *display_channel = SPICE_CONTAINEROF(rcc->channel,
> DisplayChannel, common.base);
> @@ -2025,7 +2020,6 @@ DisplayChannel* display_channel_new(SpiceServer *reds,
> RedWorker *worker,
> .on_disconnect = on_disconnect,
> .send_item = send_item,
> .hold_item = hold_item,
> - .release_item = release_item,
> .handle_migrate_flush_mark = handle_migrate_flush_mark,
> .handle_migrate_data = handle_migrate_data,
> .handle_migrate_data_get_serial = handle_migrate_data_get_serial
> diff --git a/server/inputs-channel.c b/server/inputs-channel.c
> index 0ce12de..a3c9fb2 100644
> --- a/server/inputs-channel.c
> +++ b/server/inputs-channel.c
> @@ -254,12 +254,6 @@ static void
> inputs_channel_send_migrate_data(RedChannelClient *rcc,
> spice_marshaller_add_uint16(m, icc->motion_count);
> }
>
> -static void inputs_channel_release_pipe_item(RedChannelClient *rcc,
> - RedPipeItem *base, int item_pushed)
> -{
> - free(base);
> -}
> -
> static void inputs_channel_send_item(RedChannelClient *rcc, RedPipeItem
> *base)
> {
> SpiceMarshaller *m = red_channel_client_get_marshaller(rcc);
> @@ -627,7 +621,6 @@ InputsChannel* inputs_channel_new(RedsState *reds)
> channel_cbs.on_disconnect = inputs_channel_on_disconnect;
> channel_cbs.send_item = inputs_channel_send_item;
> channel_cbs.hold_item = inputs_channel_hold_pipe_item;
> - channel_cbs.release_item = inputs_channel_release_pipe_item;
> channel_cbs.alloc_recv_buf = inputs_channel_alloc_msg_rcv_buf;
> channel_cbs.release_recv_buf = inputs_channel_release_msg_rcv_buf;
> channel_cbs.handle_migrate_data = inputs_channel_handle_migrate_data;
> diff --git a/server/red-channel.c b/server/red-channel.c
> index a99c6c6..0d35fc0 100644
> --- a/server/red-channel.c
> +++ b/server/red-channel.c
> @@ -1016,6 +1016,11 @@ void
> red_channel_client_default_migrate(RedChannelClient *rcc)
> red_channel_client_pipe_add_type(rcc, RED_PIPE_ITEM_TYPE_MIGRATE);
> }
>
> +static void red_channel_release_item(RedChannelClient *rcc, RedPipeItem
> *item, int item_pushed)
> +{
> + red_pipe_item_unref(item);
> +}
> +
> RedChannel *red_channel_create(int size,
> RedsState *reds,
> const SpiceCoreInterfaceInternal *core,
> @@ -1030,7 +1035,7 @@ RedChannel *red_channel_create(int size,
>
> spice_assert(size >= sizeof(*channel));
> spice_assert(channel_cbs->config_socket && channel_cbs->on_disconnect &&
> handle_message &&
> - channel_cbs->alloc_recv_buf && channel_cbs->release_item);
> + channel_cbs->alloc_recv_buf);
> spice_assert(channel_cbs->handle_migrate_data ||
> !(migration_flags & SPICE_MIGRATE_NEED_DATA_TRANSFER));
> channel = spice_malloc0(size);
> @@ -1040,6 +1045,9 @@ RedChannel *red_channel_create(int size,
> channel->handle_acks = handle_acks;
> channel->migration_flags = migration_flags;
> memcpy(&channel->channel_cbs, channel_cbs, sizeof(ChannelCbs));
> + if (!channel->channel_cbs.release_item) {
> + channel->channel_cbs.release_item = red_channel_release_item;
> + }
>
> channel->reds = reds;
> channel->core = core;
> diff --git a/server/smartcard.c b/server/smartcard.c
> index c8e9eb0..a75f01c 100644
> --- a/server/smartcard.c
> +++ b/server/smartcard.c
> @@ -504,12 +504,6 @@ static void smartcard_channel_send_item(RedChannelClient
> *rcc, RedPipeItem *item
> red_channel_client_begin_send_message(rcc);
> }
>
> -static void smartcard_channel_release_pipe_item(RedChannelClient *rcc,
> - RedPipeItem *item, int item_pushed)
> -{
> - red_pipe_item_unref(item);
> -}
> -
> static void smartcard_channel_on_disconnect(RedChannelClient *rcc)
> {
> SmartCardChannelClient *scc = SPICE_CONTAINEROF(rcc,
> SmartCardChannelClient, base);
> @@ -792,7 +786,6 @@ static void smartcard_init(RedsState *reds)
> channel_cbs.on_disconnect = smartcard_channel_on_disconnect;
> channel_cbs.send_item = smartcard_channel_send_item;
> channel_cbs.hold_item = smartcard_channel_hold_pipe_item;
> - channel_cbs.release_item = smartcard_channel_release_pipe_item;
> channel_cbs.alloc_recv_buf = smartcard_channel_alloc_msg_rcv_buf;
> channel_cbs.release_recv_buf = smartcard_channel_release_msg_rcv_buf;
> channel_cbs.handle_migrate_flush_mark =
> smartcard_channel_client_handle_migrate_flush_mark;
> diff --git a/server/spicevmc.c b/server/spicevmc.c
> index 5724023..1e9406e 100644
> --- a/server/spicevmc.c
> +++ b/server/spicevmc.c
> @@ -437,13 +437,6 @@ static void
> spicevmc_red_channel_send_item(RedChannelClient *rcc,
> red_channel_client_begin_send_message(rcc);
> }
>
> -static void spicevmc_red_channel_release_pipe_item(RedChannelClient *rcc,
> - RedPipeItem *item,
> - int item_pushed)
> -{
> - red_pipe_item_unref(item);
> -}
> -
> static void spicevmc_connect(RedChannel *channel, RedClient *client,
> RedsStream *stream, int migration, int num_common_caps,
> uint32_t *common_caps, int num_caps, uint32_t *caps)
> @@ -505,7 +498,6 @@ RedCharDevice *spicevmc_device_connect(RedsState *reds,
> channel_cbs.on_disconnect = spicevmc_red_channel_client_on_disconnect;
> channel_cbs.send_item = spicevmc_red_channel_send_item;
> channel_cbs.hold_item = spicevmc_red_channel_hold_pipe_item;
> - channel_cbs.release_item = spicevmc_red_channel_release_pipe_item;
> channel_cbs.alloc_recv_buf = spicevmc_red_channel_alloc_msg_rcv_buf;
> channel_cbs.release_recv_buf = spicevmc_red_channel_release_msg_rcv_buf;
> channel_cbs.handle_migrate_flush_mark =
> spicevmc_channel_client_handle_migrate_flush_mark;
More information about the Spice-devel
mailing list