[Spice-devel] [RFC v4 33/62] server/red_worker: fix red_pipe_remove_drawable
Alon Levy
alevy at redhat.com
Tue Apr 26 03:54:58 PDT 2011
---
server/red_worker.c | 11 ++++++-----
1 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/server/red_worker.c b/server/red_worker.c
index 4fbcb4f..a700f7e 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -1298,11 +1298,10 @@ static inline PipeItem *red_pipe_get_tail(DisplayChannelClient *dcc)
static inline void red_destroy_surface(RedWorker *worker, Surfaces *surfaces, uint32_t surface_id);
-static inline void red_pipe_remove_drawable(RedWorker *worker, Drawable *drawable)
+static inline void red_pipe_remove_drawable(DisplayChannelClient *dcc, Drawable *drawable)
{
if (pipe_item_is_linked(&drawable->pipe_item)) {
- red_channel_client_pipe_remove_and_release(
- worker->display_channel->common.base.rcc, &drawable->pipe_item);
+ red_channel_client_pipe_remove_and_release( &dcc->common.base, &drawable->pipe_item);
}
}
@@ -1653,7 +1652,9 @@ static inline void current_remove_drawable(RedWorker *worker, Surfaces *surfaces
static void remove_drawable(RedWorker *worker, Surfaces *surfaces, Drawable *item)
{
- red_pipe_remove_drawable(worker, item);
+ if (surfaces->dcc) {
+ red_pipe_remove_drawable(surfaces->dcc, item);
+ }
current_remove_drawable(worker, surfaces, item);
}
@@ -6400,7 +6401,7 @@ static void red_pipe_replace_rendered_drawables_with_images(RedWorker *worker,
num_resent++;
ASSERT(image);
- red_pipe_remove_drawable(worker, drawable);
+ red_pipe_remove_drawable(dcc, drawable);
pipe_item = &image->link;
}
}
--
1.7.4.4
More information about the Spice-devel
mailing list