[Spice-commits] server/reds.c

Christophe Fergau teuf at kemper.freedesktop.org
Thu Mar 24 14:26:28 UTC 2016


 server/reds.c |   19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

New commits:
commit 3486ecde03418f5a7a18f73bcc41403d5cea2efc
Author: Francois Gouget <fgouget at codeweavers.com>
Date:   Mon Mar 14 00:39:02 2016 +0100

    server: More clearly identify channels that support multiple clients
    
    Rename the function to channel_supports_multiple_clients() as
    channel_is_secondary() is unclear and was coded to return the opposite
    of what was originally intended.
    Also there are few channel types and whether they support multiple
    clients is totally static so we might as well delegate the check to
    the compiler.
    
    Signed-off-by: Francois Gouget <fgouget at codeweavers.com>

diff --git a/server/reds.c b/server/reds.c
index eb24303..8942258 100644
--- a/server/reds.c
+++ b/server/reds.c
@@ -885,16 +885,14 @@ SPICE_GNUC_VISIBLE int spice_server_get_num_clients(SpiceServer *reds)
     return reds_get_n_clients(reds);
 }
 
-static const int secondary_channels[] = {
-    SPICE_CHANNEL_MAIN, SPICE_CHANNEL_DISPLAY, SPICE_CHANNEL_CURSOR, SPICE_CHANNEL_INPUTS};
-
-static int channel_is_secondary(RedChannel *channel)
+static int channel_supports_multiple_clients(RedChannel *channel)
 {
-    int i;
-    for (i = 0 ; i < G_N_ELEMENTS(secondary_channels); ++i) {
-        if (channel->type == secondary_channels[i]) {
-            return TRUE;
-        }
+    switch (channel->type) {
+    case SPICE_CHANNEL_MAIN:
+    case SPICE_CHANNEL_DISPLAY:
+    case SPICE_CHANNEL_CURSOR:
+    case SPICE_CHANNEL_INPUTS:
+        return TRUE;
     }
     return FALSE;
 }
@@ -907,7 +905,8 @@ void reds_fill_channels(RedsState *reds, SpiceMsgChannels *channels_info)
     channels_info->num_of_channels = reds->num_of_channels;
     RING_FOREACH(now, &reds->channels) {
         RedChannel *channel = SPICE_CONTAINEROF(now, RedChannel, link);
-        if (reds->num_clients > 1 && !channel_is_secondary(channel)) {
+        if (reds->num_clients > 1 &&
+            !channel_supports_multiple_clients(channel)) {
             continue;
         }
         channels_info->channels[used_channels].type = channel->type;


More information about the Spice-commits mailing list