[Spice-devel] [PATCH 03/23] simplify RED_PIPE_ITEM_TYPE_DRAW item release
Jonathon Jongsma
jjongsma at redhat.com
Tue May 17 19:46:12 UTC 2016
Acked-by: Jonathon Jongsma <jjongsma at redhat.com>
On Mon, 2016-05-16 at 14:31 +0100, Frediano Ziglio wrote:
> Move ring_remove to the function to release this type of item.
>
> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> ---
> server/dcc.c | 11 ++++-------
> 1 file changed, 4 insertions(+), 7 deletions(-)
>
> diff --git a/server/dcc.c b/server/dcc.c
> index db77cc7..0953efd 100644
> --- a/server/dcc.c
> +++ b/server/dcc.c
> @@ -288,7 +288,9 @@ void red_drawable_pipe_item_free(RedPipeItem *item)
> spice_assert(item->refcount == 0);
>
> spice_warn_if_fail(!ring_item_is_linked(&item->link));
> - spice_warn_if_fail(!ring_item_is_linked(&dpi->base));
> + if (ring_item_is_linked(&dpi->base)) {
> + ring_remove(&dpi->base);
> + }
> drawable_unref(dpi->drawable);
> free(dpi);
> }
> @@ -1636,12 +1638,6 @@ static void
> release_item_before_push(DisplayChannelClient *dcc, RedPipeItem *ite
>
> spice_debug("item.type: %d", item->type);
> switch (item->type) {
> - case RED_PIPE_ITEM_TYPE_DRAW: {
> - RedDrawablePipeItem *dpi = SPICE_CONTAINEROF(item,
> RedDrawablePipeItem, dpi_pipe_item);
> - ring_remove(&dpi->base);
> - red_pipe_item_unref(item);
> - break;
> - }
> case RED_PIPE_ITEM_TYPE_STREAM_CREATE: {
> StreamAgent *agent = SPICE_CONTAINEROF(item, StreamAgent,
> create_item);
> stream_agent_unref(display, agent);
> @@ -1652,6 +1648,7 @@ static void
> release_item_before_push(DisplayChannelClient *dcc, RedPipeItem *ite
> stream_agent_unref(display, agent);
> break;
> }
> + case RED_PIPE_ITEM_TYPE_DRAW:
> case RED_PIPE_ITEM_TYPE_STREAM_CLIP:
> case RED_PIPE_ITEM_TYPE_UPGRADE:
> case RED_PIPE_ITEM_TYPE_IMAGE:
More information about the Spice-devel
mailing list