[empathy: 4/15] Remove dead code related to outstanding channels



commit 696f7bdae93846bdf809ae7e19be5f2ea9913fe6
Author: Sjoerd Simons <sjoerd simons collabora co uk>
Date:   Tue Sep 1 15:20:27 2009 +0100

    Remove dead code related to outstanding channels
    
    With the move to the ChannelDispatcher channels we've requested will either not
    be dispatched through HandleChannels (because we used the old way of directly
    requesting it on the MC) or will get passed after we've started the request and
    can thus be dispatched right away. The concept of oustanding channel is thus
    obsolete.

 libempathy/empathy-dispatcher.c |   98 +--------------------------------------
 1 files changed, 2 insertions(+), 96 deletions(-)
---
diff --git a/libempathy/empathy-dispatcher.c b/libempathy/empathy-dispatcher.c
index b199f0d..1742455 100644
--- a/libempathy/empathy-dispatcher.c
+++ b/libempathy/empathy-dispatcher.c
@@ -162,16 +162,6 @@ typedef struct
   /* ObjectPath -> EmpathyDispatchOperations */
   GHashTable *dispatching_channels;
 
-  /* ObjectPath -> EmpathyDispatchOperations
-   *
-   * This holds channels which were announced with NewChannel while we have an
-   * outstanding channel request for a channel of this type. On the Requests
-   * interface, CreateChannel and EnsureChannel are guaranteed by the spec to
-   * return before NewChannels is emitted, but there was no guarantee of the
-   * ordering of RequestChannel vs. NewChannel. So if necessary, channels are
-   * held in limbo here until we know whether they were requested.
-   */
-  GHashTable *outstanding_channels;
   /* List of DispatcherRequestData */
   GList *outstanding_requests;
   /* List of requestable channel classes */
@@ -288,9 +278,6 @@ new_connection_data (void)
   cd->dispatching_channels = g_hash_table_new_full (g_str_hash, g_str_equal,
       g_free, g_object_unref);
 
-  cd->outstanding_channels = g_hash_table_new_full (g_str_hash, g_str_equal,
-      g_free, NULL);
-
   return cd;
 }
 
@@ -353,28 +340,6 @@ dispatcher_connection_invalidated_cb (TpConnection *connection,
   g_hash_table_remove (priv->connections, connection);
 }
 
-static gboolean
-dispatcher_operation_can_start (EmpathyDispatcher *self,
-                                EmpathyDispatchOperation *operation,
-                                ConnectionData *cd)
-{
-  GList *l;
-  const gchar *channel_type =
-    empathy_dispatch_operation_get_channel_type (operation);
-
-  for (l = cd->outstanding_requests; l != NULL; l = g_list_next (l))
-    {
-      DispatcherRequestData *d = (DispatcherRequestData *) l->data;
-
-      if (d->operation == NULL && !tp_strdiff (d->channel_type, channel_type))
-        {
-          return FALSE;
-        }
-    }
-
-  return TRUE;
-}
-
 static void
 dispatch_operation_flush_requests (EmpathyDispatcher *self,
                                    EmpathyDispatchOperation *operation,
@@ -419,7 +384,6 @@ dispatcher_channel_invalidated_cb (TpProxy *proxy,
   /* Channel went away... */
   EmpathyDispatcherPriv *priv = GET_PRIV (self);
   TpConnection *connection;
-  EmpathyDispatchOperation *operation;
   ConnectionData *cd;
   const gchar *object_path;
 
@@ -438,15 +402,6 @@ dispatcher_channel_invalidated_cb (TpProxy *proxy,
   g_hash_table_remove (cd->dispatching_channels, object_path);
 
   priv->channels = g_list_remove (priv->channels, proxy);
-
-  operation = g_hash_table_lookup (cd->outstanding_channels, object_path);
-  if (operation != NULL)
-    {
-      GError error = { domain, code, message };
-      dispatch_operation_flush_requests (self, operation, &error, cd);
-      g_hash_table_remove (cd->outstanding_channels, object_path);
-      g_object_unref (operation);
-    }
 }
 
 static void
@@ -556,9 +511,6 @@ dispatcher_start_dispatching (EmpathyDispatcher *self,
 
   if (g_hash_table_lookup (cd->dispatching_channels, object_path) == NULL)
     {
-      g_assert (g_hash_table_lookup (cd->outstanding_channels,
-        object_path) == NULL);
-
       g_hash_table_insert (cd->dispatching_channels,
         g_strdup (object_path), operation);
 
@@ -587,26 +539,6 @@ dispatcher_start_dispatching (EmpathyDispatcher *self,
 }
 
 static void
-dispatcher_flush_outstanding_operations (EmpathyDispatcher *self,
-                                         ConnectionData *cd)
-{
-  GHashTableIter iter;
-  gpointer value;
-
-  g_hash_table_iter_init (&iter, cd->outstanding_channels);
-  while (g_hash_table_iter_next (&iter, NULL, &value))
-    {
-      EmpathyDispatchOperation *operation = EMPATHY_DISPATCH_OPERATION (value);
-
-      if (dispatcher_operation_can_start (self, operation, cd))
-        {
-          g_hash_table_iter_remove (&iter);
-          dispatcher_start_dispatching (self, operation, cd);
-        }
-    }
-}
-
-static void
 dispatcher_connection_new_channel (EmpathyDispatcher *self,
                                    TpConnection *connection,
                                    const gchar *object_path,
@@ -636,20 +568,6 @@ dispatcher_connection_new_channel (EmpathyDispatcher *self,
 
   cd = g_hash_table_lookup (priv->connections, connection);
 
-  /* Don't bother with channels we have already dispatched or are dispatching
-   * currently. This can happen when NewChannel(s) is fired after
-   * RequestChannel/CreateChannel/EnsureChannel */
-  if (g_hash_table_lookup (cd->dispatched_channels, object_path) != NULL)
-    return;
-
-  if (g_hash_table_lookup (cd->dispatching_channels, object_path) != NULL)
-    return;
-
-  /* Should never occur, but just in case a CM fires spurious NewChannel(s)
-   * signals */
-  if (g_hash_table_lookup (cd->outstanding_channels, object_path) != NULL)
-    return;
-
   for (i = 0 ; blacklist[i] != NULL; i++)
     {
       if (!tp_strdiff (channel_type, blacklist[i]))
@@ -1380,16 +1298,10 @@ dispatcher_connection_new_requested_channel (EmpathyDispatcher *self,
 
       dispatcher_request_failed (self, request_data, error);
 
-      goto out;
+      return;
     }
 
-  operation = g_hash_table_lookup (conn_data->outstanding_channels,
-    object_path);
-
-  if (operation != NULL)
-    g_hash_table_remove (conn_data->outstanding_channels, object_path);
-  else
-    operation = g_hash_table_lookup (conn_data->dispatching_channels,
+  operation = g_hash_table_lookup (conn_data->dispatching_channels,
         object_path);
 
   if (operation == NULL)
@@ -1451,10 +1363,6 @@ dispatcher_connection_new_requested_channel (EmpathyDispatcher *self,
           conn_data);
 
   g_object_unref (operation);
-
-out:
-  dispatcher_flush_outstanding_operations (self, conn_data);
-  g_object_unref (self);
 }
 
 static void
@@ -1623,8 +1531,6 @@ dispatcher_request_handles_cb (TpConnection *connection,
         request_data);
 
       free_dispatcher_request_data (request_data);
-
-      dispatcher_flush_outstanding_operations (self, cd);
       return;
     }
 



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