[Spice-devel] [PATCH] channel: Remove clients_num and use g_list_length
Frediano Ziglio
fziglio at redhat.com
Wed Jun 1 14:58:37 UTC 2016
clients_num was no more updated correctly.
This fixes a regression introduced by
4028fb1c794ef2a212f22b024b1c39f460439e7b.
The number of client is quite small so there is no much reason
to cache the number of elements.
Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
---
server/display-channel.c | 2 +-
server/main-channel-client.c | 2 +-
server/main-channel.c | 2 +-
server/red-channel.h | 1 -
server/red-worker.c | 2 +-
5 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/server/display-channel.c b/server/display-channel.c
index f3bdb73..2888cad 100644
--- a/server/display-channel.c
+++ b/server/display-channel.c
@@ -319,7 +319,7 @@ static void pipes_add_drawable_after(DisplayChannel *display,
pipes_add_drawable(display, drawable);
return;
}
- if (num_other_linked != display->common.base.clients_num) {
+ if (num_other_linked != g_list_length(display->common.base.clients)) {
GList *link, *next;
spice_debug("TODO: not O(n^2)");
FOREACH_CLIENT(display, link, next, dcc) {
diff --git a/server/main-channel-client.c b/server/main-channel-client.c
index 2188ebb..acf1bd4 100644
--- a/server/main-channel-client.c
+++ b/server/main-channel-client.c
@@ -457,7 +457,7 @@ void main_channel_client_migrate_dst_complete(MainChannelClient *mcc)
{
if (mcc->mig_wait_prev_complete) {
if (mcc->mig_wait_prev_try_seamless) {
- spice_assert(mcc->base.channel->clients_num == 1);
+ spice_assert(g_list_length(mcc->base.channel->clients) == 1);
red_channel_client_pipe_add_type(&mcc->base,
RED_PIPE_ITEM_TYPE_MAIN_MIGRATE_BEGIN_SEAMLESS);
} else {
diff --git a/server/main-channel.c b/server/main-channel.c
index 1a18200..42195e6 100644
--- a/server/main-channel.c
+++ b/server/main-channel.c
@@ -102,7 +102,7 @@ static int main_channel_handle_migrate_data(RedChannelClient *rcc,
SpiceMigrateDataHeader *header = (SpiceMigrateDataHeader *)message;
/* not supported with multi-clients */
- spice_assert(rcc->channel->clients_num == 1);
+ spice_assert(g_list_length(rcc->channel->clients) == 1);
if (size < sizeof(SpiceMigrateDataHeader) + sizeof(SpiceMigrateDataMain)) {
spice_printerr("bad message size %u", size);
diff --git a/server/red-channel.h b/server/red-channel.h
index 1907ae6..5b38f57 100644
--- a/server/red-channel.h
+++ b/server/red-channel.h
@@ -306,7 +306,6 @@ struct RedChannel {
// Maybe replace these logic with ref count?
// TODO: rename to 'connected_clients'?
GList *clients;
- uint32_t clients_num;
OutgoingHandlerInterface outgoing_cb;
IncomingHandlerInterface incoming_cb;
diff --git a/server/red-worker.c b/server/red-worker.c
index e99c9a1..a14f55d 100644
--- a/server/red-worker.c
+++ b/server/red-worker.c
@@ -525,7 +525,7 @@ static void guest_set_client_capabilities(RedWorker *worker)
return;
}
if ((worker->display_channel == NULL) ||
- (RED_CHANNEL(worker->display_channel)->clients_num == 0)) {
+ (RED_CHANNEL(worker->display_channel)->clients == NULL)) {
red_qxl_set_client_capabilities(worker->qxl, FALSE, caps);
} else {
// Take least common denominator
--
2.7.4
More information about the Spice-devel
mailing list