[empathy] allow got_list_channel to be called more than once for the same channel



commit 4893de0412531c4cb0eb846cffc9fec8031d5a1d
Author: Guillaume Desmottes <guillaume desmottes collabora co uk>
Date:   Wed Mar 24 11:32:00 2010 +0100

    allow got_list_channel to be called more than once for the same channel
    
    Also allow to pass other list channel such as 'deny' for example.

 libempathy/empathy-tp-contact-list.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)
---
diff --git a/libempathy/empathy-tp-contact-list.c b/libempathy/empathy-tp-contact-list.c
index 2f2717b..1b8f116 100644
--- a/libempathy/empathy-tp-contact-list.c
+++ b/libempathy/empathy-tp-contact-list.c
@@ -710,19 +710,23 @@ got_list_channel (EmpathyTpContactList *list,
 
 	/* TpChannel emits initial set of members just before being ready */
 	if (!tp_strdiff (id, "stored")) {
+		if (priv->stored != NULL)
+			return;
 		priv->stored = g_object_ref (channel);
 	} else if (!tp_strdiff (id, "publish")) {
+		if (priv->publish != NULL)
+			return;
 		priv->publish = g_object_ref (channel);
 		g_signal_connect (priv->publish, "group-members-changed",
 				  G_CALLBACK (tp_contact_list_publish_group_members_changed_cb),
 				  list);
 	} else if (!tp_strdiff (id, "subscribe")) {
+		if (priv->subscribe != NULL)
+			return;
 		priv->subscribe = g_object_ref (channel);
 		g_signal_connect (priv->subscribe, "group-members-changed",
 				  G_CALLBACK (tp_contact_list_subscribe_group_members_changed_cb),
 				  list);
-	} else {
-		g_warn_if_reached ();
 	}
 }
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]