Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx> --- server/dcc.c | 13 +++++-------- server/dcc.h | 3 +-- server/display-channel.c | 5 +++-- 3 files changed, 9 insertions(+), 12 deletions(-) diff --git a/server/dcc.c b/server/dcc.c index 8a63caf..a800aaa 100644 --- a/server/dcc.c +++ b/server/dcc.c @@ -217,18 +217,15 @@ RedImageItem *dcc_add_surface_area_image(DisplayChannelClient *dcc, return item; } -void dcc_push_surface_image(DisplayChannelClient *dcc, int surface_id) +void dcc_push_surface_image(DisplayChannelClient *dcc, RedSurface *surface) { - DisplayChannel *display; SpiceRect area; - RedSurface *surface; + uint32_t surface_id = surface->id; if (!dcc) { return; } - display = DCC_TO_DC(dcc); - surface = &display->priv->surfaces[surface_id]; if (!surface->context.canvas) { return; } @@ -257,7 +254,7 @@ static void add_drawable_surface_images(DisplayChannelClient *dcc, Drawable *dra } dcc_create_surface(dcc, drawable->surface_deps[x]); display_channel_current_flush(display, drawable->surface_deps[x]); - dcc_push_surface_image(dcc, surface_id); + dcc_push_surface_image(dcc, drawable->surface_deps[x]); } } @@ -267,7 +264,7 @@ static void add_drawable_surface_images(DisplayChannelClient *dcc, Drawable *dra dcc_create_surface(dcc, drawable->surface); display_channel_current_flush(display, drawable->surface); - dcc_push_surface_image(dcc, drawable->surface->id); + dcc_push_surface_image(dcc, drawable->surface); } static void red_drawable_pipe_item_free(RedPipeItem *item) @@ -439,7 +436,7 @@ void dcc_start(DisplayChannelClient *dcc) display_channel_current_flush(display, &display->priv->surfaces[0]); red_channel_client_pipe_add_type(rcc, RED_PIPE_ITEM_TYPE_INVAL_PALETTE_CACHE); dcc_create_surface(dcc, &display->priv->surfaces[0]); - dcc_push_surface_image(dcc, 0); + dcc_push_surface_image(dcc, &display->priv->surfaces[0]); dcc_push_monitors_config(dcc); red_pipe_add_verb(rcc, SPICE_MSG_DISPLAY_MARK); dcc_create_all_streams(dcc); diff --git a/server/dcc.h b/server/dcc.h index 2068d78..db48191 100644 --- a/server/dcc.h +++ b/server/dcc.h @@ -123,8 +123,7 @@ void dcc_stream_agent_clip (DisplayCha void dcc_create_stream (DisplayChannelClient *dcc, Stream *stream); void dcc_create_surface(DisplayChannelClient *dcc, struct RedSurface *surface); -void dcc_push_surface_image (DisplayChannelClient *dcc, - int surface_id); +void dcc_push_surface_image(DisplayChannelClient *dcc, struct RedSurface *surface); RedImageItem * dcc_add_surface_area_image (DisplayChannelClient *dcc, int surface_id, SpiceRect *area, diff --git a/server/display-channel.c b/server/display-channel.c index 64a59de..d0b4a25 100644 --- a/server/display-channel.c +++ b/server/display-channel.c @@ -1780,8 +1780,9 @@ static void send_create_surface(DisplayChannel *display, RedSurface *surface, in FOREACH_DCC(display, iter, dcc) { dcc_create_surface(dcc, surface); - if (image_ready) - dcc_push_surface_image(dcc, surface->id); + if (image_ready) { + dcc_push_surface_image(dcc, surface); + } } } -- 2.7.4 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel