[Spice-devel] [spice-server 3/4] cursor: Remove cursor_channel_disconnect()

Christophe Fergeau cfergeau at redhat.com
Wed Aug 30 16:34:53 UTC 2017


cursor_channel_disconnect() calls
cursor_channel_client_reset_cursor_cache() on all CursorChannelClient
associated with the current CursorChannel before calling
red_channel_disconnect().

red_channel_disconnect() will iterate over all CursorChannelClient
calling red_channel_client_disconnect(), which will eventually call
CursorChannelClient::on_disconnect. This will in turn
cursor_channel_client_reset_cursor_cache(), so calling it in
cursor_channel_disconnect() before calling red_channel_disconnect() is
redundant.

cursor_channel_disconnect() can thus be replaced by a direct call to
red_channel_disconnect().

Signed-off-by: Christophe Fergeau <cfergeau at redhat.com>
---
 server/cursor-channel.c | 11 -----------
 server/cursor-channel.h |  4 ----
 server/red-worker.c     |  2 +-
 3 files changed, 1 insertion(+), 16 deletions(-)

diff --git a/server/cursor-channel.c b/server/cursor-channel.c
index f35c9b209..8ac5af473 100644
--- a/server/cursor-channel.c
+++ b/server/cursor-channel.c
@@ -158,17 +158,6 @@ static void cursor_fill(CursorChannelClient *ccc, CursorItem *cursor,
     }
 }
 
-void cursor_channel_disconnect(CursorChannel *cursor_channel)
-{
-    RedChannel *channel = RED_CHANNEL(cursor_channel);
-
-    if (!channel || !red_channel_is_connected(channel)) {
-        return;
-    }
-    red_channel_apply_clients(channel, cursor_channel_client_reset_cursor_cache);
-    red_channel_disconnect(channel);
-}
-
 static void cursor_pipe_item_free(RedPipeItem *base)
 {
     spice_return_if_fail(base);
diff --git a/server/cursor-channel.h b/server/cursor-channel.h
index 9f3ef52e8..f279aafcf 100644
--- a/server/cursor-channel.h
+++ b/server/cursor-channel.h
@@ -59,10 +59,6 @@ GType cursor_channel_get_type(void) G_GNUC_CONST;
 CursorChannel*       cursor_channel_new         (RedsState *server, QXLInstance *qxl,
                                                  const SpiceCoreInterfaceInternal *core);
 
-/**
- * Cause the channel to disconnect all clients
- */
-void                 cursor_channel_disconnect  (CursorChannel *cursor);
 void                 cursor_channel_reset       (CursorChannel *cursor);
 void                 cursor_channel_do_init     (CursorChannel *cursor);
 void                 cursor_channel_process_cmd (CursorChannel *cursor, RedCursorCmd *cursor_cmd);
diff --git a/server/red-worker.c b/server/red-worker.c
index 0e2e8fa3a..109db63e0 100644
--- a/server/red-worker.c
+++ b/server/red-worker.c
@@ -363,7 +363,7 @@ static void flush_display_commands(RedWorker *worker)
 static void red_disconnect_cursor(RedWorker *worker)
 {
     spice_warning("flush cursor timeout");
-    cursor_channel_disconnect(worker->cursor_channel);
+    red_channel_disconnect(RED_CHANNEL(worker->cursor_channel));
 }
 
 static void flush_cursor_commands(RedWorker *worker)
-- 
2.13.5



More information about the Spice-devel mailing list