[Telepathy-commits] [telepathy-gabble/master] Use TpChannelManagerIter to iterate over channel managers.

Alban Crequy alban.crequy at collabora.co.uk
Fri Dec 5 09:42:35 PST 2008


---
 src/connection.c     |   25 ++++++++++++++-----------
 src/presence-cache.c |    9 ++++++---
 2 files changed, 20 insertions(+), 14 deletions(-)

diff --git a/src/connection.c b/src/connection.c
index 7078aea..72cd7d9 100644
--- a/src/connection.c
+++ b/src/connection.c
@@ -2116,12 +2116,13 @@ static void
 gabble_connection_get_handle_contact_capabilities (GabbleConnection *self,
   TpHandle handle, GPtrArray *arr)
 {
-  guint i;
+  TpBaseConnection *base_conn = TP_BASE_CONNECTION (self);
+  TpChannelManagerIter iter;
+  TpChannelManager *manager;
 
-  for (i = 0; i < self->channel_managers->len; i++)
+  tp_base_connection_channel_manager_iter_init (&iter, base_conn);
+  while (tp_base_connection_channel_manager_iter_next (&iter, &manager))
     {
-      gpointer manager = g_ptr_array_index (self->channel_managers, i);
-
       /* some channel managers does not implement the capability interface */
       if (!GABBLE_IS_CAPS_CHANNEL_MANAGER (manager))
         continue;
@@ -2138,13 +2139,15 @@ _emit_contact_capabilities_changed (GabbleConnection *conn,
                                     GHashTable *old_caps,
                                     GHashTable *new_caps)
 {
+  TpBaseConnection *base_conn = TP_BASE_CONNECTION (conn);
+  TpChannelManagerIter iter;
+  TpChannelManager *manager;
   GPtrArray *ret;
   gboolean diff = FALSE;
-  guint i;
 
-  for (i = 0; i < conn->channel_managers->len; i++)
+  tp_base_connection_channel_manager_iter_init (&iter, base_conn);
+  while (tp_base_connection_channel_manager_iter_next (&iter, &manager))
     {
-      gpointer manager = g_ptr_array_index (conn->channel_managers, i);
       gpointer per_channel_factory_caps_old = NULL;
       gpointer per_channel_factory_caps_new = NULL;
 
@@ -2349,12 +2352,12 @@ gabble_connection_set_self_capabilities (
   for (i = 0; i < caps->len; i++)
     {
       GHashTable *cap_to_add = g_ptr_array_index (caps, i);
-      guint j;
+      TpChannelManagerIter iter;
+      TpChannelManager *manager;
 
-      for (j = 0; j < self->channel_managers->len; j++)
+      tp_base_connection_channel_manager_iter_init (&iter, base);
+      while (tp_base_connection_channel_manager_iter_next (&iter, &manager))
         {
-          gpointer manager = g_ptr_array_index (self->channel_managers, j);
-
           /* some channel managers does not implement the capability interface
            */
           if (!GABBLE_IS_CAPS_CHANNEL_MANAGER (manager))
diff --git a/src/presence-cache.c b/src/presence-cache.c
index b2c0a0d..4a8f900 100644
--- a/src/presence-cache.c
+++ b/src/presence-cache.c
@@ -795,10 +795,13 @@ _caps_disco_cb (GabbleDisco *disco,
   guint trust, trust_inc;
   TpHandle handle = 0;
   gboolean bad_hash = FALSE;
-  guint j;
+  TpBaseConnection *base_conn;
+  TpChannelManagerIter iter;
+  TpChannelManager *manager;
 
   cache = GABBLE_PRESENCE_CACHE (user_data);
   priv = GABBLE_PRESENCE_CACHE_PRIV (cache);
+  base_conn = TP_BASE_CONNECTION (priv->conn);
   contact_repo = tp_base_connection_get_handles (
       (TpBaseConnection *) priv->conn, TP_HANDLE_TYPE_CONTACT);
 
@@ -856,10 +859,10 @@ _caps_disco_cb (GabbleDisco *disco,
   per_channel_factory_caps = g_hash_table_new (NULL, NULL);
 
   /* parsing for Connection.Interface.ContactCapabilities.DRAFT */
-  for (j = 0; j < priv->conn->channel_managers->len; j++)
+  tp_base_connection_channel_manager_iter_init (&iter, base_conn);
+  while (tp_base_connection_channel_manager_iter_next (&iter, &manager))
     {
       gpointer *factory_caps;
-      gpointer manager = g_ptr_array_index (priv->conn->channel_managers, j);
 
       /* some channel managers does not implement the capability interface */
       if (!GABBLE_IS_CAPS_CHANNEL_MANAGER (manager))
-- 
1.5.6.5




More information about the Telepathy-commits mailing list