ACK On Thu, 2015-11-19 at 18:01 +0000, Frediano Ziglio wrote: > From: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> > > --- > server/red_worker.c | 21 ++++++++++++--------- > 1 file changed, 12 insertions(+), 9 deletions(-) > > diff --git a/server/red_worker.c b/server/red_worker.c > index 2759857..747bb9e 100644 > --- a/server/red_worker.c > +++ b/server/red_worker.c > @@ -182,7 +182,7 @@ static void red_update_area(DisplayChannel *display, const > SpiceRect *area, int > static void red_update_area_till(DisplayChannel *display, const SpiceRect > *area, int surface_id, > Drawable *last); > static inline void display_begin_send_message(RedChannelClient *rcc); > -static void red_release_glz(DisplayChannelClient *dcc); > +static void dcc_release_glz(DisplayChannelClient *dcc); > static void red_freeze_glz(DisplayChannelClient *dcc); > static void display_channel_push_release(DisplayChannelClient *dcc, uint8_t > type, uint64_t id, > uint64_t* sync_data); > @@ -2039,7 +2039,7 @@ static void dcc_free_glz_drawable(DisplayChannelClient > *dcc, RedGlzDrawable *dra > > /* Clear all lz drawables - enforce their removal from the global dictionary. > NOTE - prevents encoding using the dictionary during the operation*/ > -static void red_display_client_clear_glz_drawables(DisplayChannelClient *dcc) > +static void dcc_free_glz_drawables(DisplayChannelClient *dcc) > { > RingItem *ring_link; > GlzSharedDictionary *glz_dict = dcc ? dcc->glz_dict : NULL; > @@ -2059,7 +2059,7 @@ static void > red_display_client_clear_glz_drawables(DisplayChannelClient *dcc) > pthread_rwlock_unlock(&glz_dict->encode_lock); > } > > -static void red_display_clear_glz_drawables(DisplayChannel *display_channel) > +static void display_channel_free_glz_drawables(DisplayChannel > *display_channel) > { > RingItem *link, *next; > DisplayChannelClient *dcc; > @@ -2068,7 +2068,7 @@ static void > red_display_clear_glz_drawables(DisplayChannel *display_channel) > return; > } > DCC_FOREACH_SAFE(link, next, dcc, RED_CHANNEL(display_channel)) { > - red_display_client_clear_glz_drawables(dcc); > + dcc_free_glz_drawables(dcc); > } > } > > @@ -4631,7 +4631,7 @@ static void > display_channel_client_on_disconnect(RedChannelClient *rcc) > display_channel_compress_stats_print(display); > pixmap_cache_unref(dcc->pixmap_cache); > dcc->pixmap_cache = NULL; > - red_release_glz(dcc); > + dcc_release_glz(dcc); > dcc_palette_cache_reset(dcc); > free(dcc->send_data.stream_outbuf); > free(dcc->send_data.free_list.res); > @@ -5067,11 +5067,11 @@ static void red_freeze_glz(DisplayChannelClient *dcc) > } > > /* destroy encoder, and dictionary if no one uses it*/ > -static void red_release_glz(DisplayChannelClient *dcc) > +static void dcc_release_glz(DisplayChannelClient *dcc) > { > GlzSharedDictionary *shared_dict; > > - red_display_client_clear_glz_drawables(dcc); > + dcc_free_glz_drawables(dcc); > > glz_encoder_destroy(dcc->glz); > dcc->glz = NULL; > @@ -5993,7 +5993,7 @@ void display_channel_destroy_surfaces(DisplayChannel > *display) > red_pipes_add_verb(RED_CHANNEL(display), > SPICE_MSG_DISPLAY_STREAM_DESTROY_ALL); > } > > - red_display_clear_glz_drawables(display); > + display_channel_free_glz_drawables(display); > } > > static void handle_dev_destroy_surfaces(void *opaque, void *payload) > @@ -6151,9 +6151,12 @@ static void handle_dev_stop(void *opaque, void > *payload) > > spice_info("stop"); > spice_assert(worker->running); > + > worker->running = FALSE; > - red_display_clear_glz_drawables(worker->display_channel); > + > + display_channel_free_glz_drawables(worker->display_channel); > display_channel_flush_all_surfaces(worker->display_channel); > + > /* todo: when the waiting is expected to take long (slow connection and > * overloaded pipe), don't wait, and in case of migration, > * purge the pipe, send destroy_all_surfaces _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel