[Spice-devel] [PATCH 16/19] worker: move red_pipes_remove_drawable

Fabiano Fidêncio fidencio at redhat.com
Thu Nov 26 01:58:09 PST 2015


On Wed, Nov 25, 2015 at 4:27 PM, Frediano Ziglio <fziglio at redhat.com> wrote:
> From: Marc-André Lureau <marcandre.lureau at gmail.com>
>
> ---
>  server/display-channel.c | 22 ++++++++++++++++++----
>  server/display-channel.h |  1 -
>  server/red_worker.c      | 14 --------------
>  3 files changed, 18 insertions(+), 19 deletions(-)
>
> diff --git a/server/display-channel.c b/server/display-channel.c
> index aa3e7fb..e29d2ad 100644
> --- a/server/display-channel.c
> +++ b/server/display-channel.c
> @@ -403,6 +403,20 @@ static void current_remove_drawable(DisplayChannel *display, Drawable *item)
>      display->current_size--;
>  }
>
> +static void drawable_remove_from_pipes(Drawable *drawable)
> +{
> +    DrawablePipeItem *dpi;
> +    RingItem *item, *next;
> +
> +    RING_FOREACH_SAFE(item, next, &drawable->pipes) {
> +        dpi = SPICE_CONTAINEROF(item, DrawablePipeItem, base);
> +        if (pipe_item_is_linked(&dpi->dpi_pipe_item)) {
> +            red_channel_client_pipe_remove_and_release(RED_CHANNEL_CLIENT(dpi->dcc),
> +                                                       &dpi->dpi_pipe_item);
> +        }
> +    }
> +}
> +
>  static void current_remove(DisplayChannel *display, TreeItem *item)
>  {
>      TreeItem *now = item;
> @@ -415,7 +429,7 @@ static void current_remove(DisplayChannel *display, TreeItem *item)
>          if (now->type == TREE_ITEM_TYPE_DRAWABLE) {
>              Drawable *drawable = SPICE_CONTAINEROF(now, Drawable, tree_item);
>              ring_item = now->siblings_link.prev;
> -            red_pipes_remove_drawable(drawable);
> +            drawable_remove_from_pipes(drawable);
>              current_remove_drawable(display, drawable);
>          } else {
>              Container *container = (Container *)now;
> @@ -482,7 +496,7 @@ static int current_add_equal(DisplayChannel *display, DrawItem *item, TreeItem *
>          } else {
>              pipes_add_drawable(display, drawable);
>          }
> -        red_pipes_remove_drawable(other_drawable);
> +        drawable_remove_from_pipes(other_drawable);
>          display_channel_drawable_unref(display, other_drawable);
>          return TRUE;
>      }
> @@ -524,7 +538,7 @@ static int current_add_equal(DisplayChannel *display, DrawItem *item, TreeItem *
>                  }
>              }
>              /* not sending other_drawable where possible */
> -            red_pipes_remove_drawable(other_drawable);
> +            drawable_remove_from_pipes(other_drawable);
>
>              display_channel_drawable_unref(display, other_drawable);
>              return TRUE;
> @@ -533,7 +547,7 @@ static int current_add_equal(DisplayChannel *display, DrawItem *item, TreeItem *
>      case QXL_EFFECT_OPAQUE_BRUSH:
>          if (is_same_geometry(drawable, other_drawable)) {
>              current_add_drawable(display, drawable, &other->siblings_link);
> -            red_pipes_remove_drawable(other_drawable);
> +            drawable_remove_from_pipes(other_drawable);
>              current_remove_drawable(display, other_drawable);
>              pipes_add_drawable(display, drawable);
>              return TRUE;
> diff --git a/server/display-channel.h b/server/display-channel.h
> index 3f3c278..28ef66c 100644
> --- a/server/display-channel.h
> +++ b/server/display-channel.h
> @@ -433,7 +433,6 @@ static inline void region_add_clip_rects(QRegion *rgn, SpiceClipRects *data)
>  }
>
>  uint32_t generate_uid(DisplayChannel *display);
> -void red_pipes_remove_drawable(Drawable *drawable);
>  void detach_streams_behind(DisplayChannel *display, QRegion *region, Drawable *drawable);
>  void drawable_draw(DisplayChannel *display, Drawable *item);
>  void drawables_init(DisplayChannel *display);
> diff --git a/server/red_worker.c b/server/red_worker.c
> index eb4be25..341574f 100644
> --- a/server/red_worker.c
> +++ b/server/red_worker.c
> @@ -125,20 +125,6 @@ static int cursor_is_connected(RedWorker *worker)
>          red_channel_is_connected(RED_CHANNEL(worker->cursor_channel));
>  }
>
> -void red_pipes_remove_drawable(Drawable *drawable)
> -{
> -    DrawablePipeItem *dpi;
> -    RingItem *item, *next;
> -
> -    RING_FOREACH_SAFE(item, next, &drawable->pipes) {
> -        dpi = SPICE_CONTAINEROF(item, DrawablePipeItem, base);
> -        if (pipe_item_is_linked(&dpi->dpi_pipe_item)) {
> -            red_channel_client_pipe_remove_and_release(RED_CHANNEL_CLIENT(dpi->dcc),
> -                                                       &dpi->dpi_pipe_item);
> -        }
> -    }
> -}
> -

Please, remove its declaration from server/display-channel.h as well.

>  static uint8_t *common_alloc_recv_buf(RedChannelClient *rcc, uint16_t type, uint32_t size)
>  {
>      CommonChannel *common = SPICE_CONTAINEROF(rcc->channel, CommonChannel, base);
> --
> 2.4.3
>
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel

Acked-by: Fabiano Fidêncio <fidencio at redhat.com>


More information about the Spice-devel mailing list