[Spice-devel] [RFC v4 35/62] server/red_worker: more removal of direct rcc access

Alon Levy alevy at redhat.com
Tue Apr 26 03:55:00 PDT 2011


---
 server/red_worker.c |   21 +++++++++++++--------
 1 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/server/red_worker.c b/server/red_worker.c
index 3581173..79fffd1 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -8489,7 +8489,8 @@ void red_disconnect_all_display_TODO_remove_me(RedChannel *channel)
 static void red_migrate_display(RedWorker *worker)
 {
     if (worker->display_channel) {
-        red_pipe_add_verb(worker->display_channel->common.base.rcc, SPICE_MSG_DISPLAY_STREAM_DESTROY_ALL);
+        red_pipes_add_verb(&worker->display_channel->common.base,
+            SPICE_MSG_DISPLAY_STREAM_DESTROY_ALL);
         red_channel_pipes_add_type(&worker->display_channel->common.base, PIPE_ITEM_TYPE_MIGRATE);
     }
 }
@@ -9584,9 +9585,11 @@ static void red_disconnect_cursor(RedChannel *channel)
 
 static void red_migrate_cursor(RedWorker *worker)
 {
-    if (worker->cursor_channel) {
-        red_channel_client_pipe_add_type(worker->cursor_channel->common.base.rcc, PIPE_ITEM_TYPE_INVAL_CURSOR_CACHE);
-        red_channel_client_pipe_add_type(worker->cursor_channel->common.base.rcc, PIPE_ITEM_TYPE_MIGRATE);
+    if (cursor_connected(worker)) {
+        red_channel_pipes_add_type(&worker->cursor_channel->common.base,
+                                   PIPE_ITEM_TYPE_INVAL_CURSOR_CACHE);
+        red_channel_pipes_add_type(&worker->cursor_channel->common.base,
+                                   PIPE_ITEM_TYPE_MIGRATE);
     }
 }
 
@@ -10006,13 +10009,15 @@ static inline void handle_dev_create_primary_surface(RedWorker *worker)
                        surface.height, surface.stride, surface.format,
                        line_0, surface.flags & QXL_SURF_FLAG_KEEP_DATA);
 
-    if (worker->display_channel) {
-        red_pipe_add_verb(worker->display_channel->common.base.rcc, SPICE_MSG_DISPLAY_MARK);
+    if (display_connected(worker)) {
+        red_pipes_add_verb(&worker->display_channel->common.base,
+                           SPICE_MSG_DISPLAY_MARK);
         red_channel_push(&worker->display_channel->common.base);
     }
 
-    if (worker->cursor_channel) {
-        red_channel_client_pipe_add_type(worker->cursor_channel->common.base.rcc, PIPE_ITEM_TYPE_CURSOR_INIT);
+    if (cursor_connected(worker)) {
+        red_channel_pipes_add_type(&worker->cursor_channel->common.base,
+                                   PIPE_ITEM_TYPE_CURSOR_INIT);
     }
 
     message = RED_WORKER_MESSAGE_READY;
-- 
1.7.4.4



More information about the Spice-devel mailing list