[Telepathy-commits] [telepathy-gabble/master] tube-stream: remove _extra_bytestream_negotiate_cb_data

Guillaume Desmottes guillaume.desmottes at collabora.co.uk
Mon Feb 23 07:32:21 PST 2009


---
 src/tube-stream.c |   31 ++++++++-----------------------
 1 files changed, 8 insertions(+), 23 deletions(-)

diff --git a/src/tube-stream.c b/src/tube-stream.c
index b88364e..f596870 100644
--- a/src/tube-stream.c
+++ b/src/tube-stream.c
@@ -394,13 +394,6 @@ extra_bytestream_state_changed_cb (GabbleBytestreamIface *bytestream,
     }
 }
 
-struct _extra_bytestream_negotiate_cb_data
-{
-  GabbleTubeStream *self;
-  /* transport from the local application */
-  GibberTransport *transport;
-};
-
 static void
 extra_bytestream_negotiate_cb (GabbleBytestreamIface *bytestream,
                                const gchar *stream_id,
@@ -408,29 +401,26 @@ extra_bytestream_negotiate_cb (GabbleBytestreamIface *bytestream,
                                GObject *object,
                                gpointer user_data)
 {
-  struct _extra_bytestream_negotiate_cb_data *data =
-    (struct _extra_bytestream_negotiate_cb_data *) user_data;
-  GabbleTubeStream *self = data->self;
+  GabbleTubeStream *self = GABBLE_TUBE_STREAM (object);
   GabbleTubeStreamPrivate *priv = GABBLE_TUBE_STREAM_GET_PRIVATE (self);
+  GibberTransport *transport = GIBBER_TRANSPORT (user_data);
 
   if (bytestream == NULL)
     {
       DEBUG ("initiator refused new bytestream");
 
-      g_object_unref (data->transport);
-      g_slice_free (struct _extra_bytestream_negotiate_cb_data, data);
+      g_object_unref (transport);
       return;
     }
 
   DEBUG ("extra bytestream accepted");
 
+  /* transport has been refed in start_stream_initiation () */
   g_hash_table_insert (priv->bytestream_to_transport, g_object_ref (bytestream),
-      data->transport);
+      transport);
 
   g_signal_connect (bytestream, "state-changed",
                 G_CALLBACK (extra_bytestream_state_changed_cb), self);
-
-  g_slice_free (struct _extra_bytestream_negotiate_cb_data, data);
 }
 
 static gboolean
@@ -445,7 +435,6 @@ start_stream_initiation (GabbleTubeStream *self,
   const gchar *jid;
   gchar *full_jid, *stream_id, *id_str;
   gboolean result;
-  struct _extra_bytestream_negotiate_cb_data *data;
 
   priv = GABBLE_TUBE_STREAM_GET_PRIVATE (self);
 
@@ -516,21 +505,17 @@ start_stream_initiation (GabbleTubeStream *self,
       "tube", id_str,
       NULL);
 
-  data = g_slice_new (struct _extra_bytestream_negotiate_cb_data);
-  data->self = self;
-  data->transport = g_object_ref (transport);
-
   result = gabble_bytestream_factory_negotiate_stream (
       priv->conn->bytestream_factory, msg, stream_id,
-      extra_bytestream_negotiate_cb, data, G_OBJECT (self), error);
+      extra_bytestream_negotiate_cb, g_object_ref (transport), G_OBJECT (self),
+      error);
 
   /* FIXME: data and one ref on data->transport are leaked if the tube is
    * closed before we got the SI reply. */
 
   if (!result)
     {
-      g_object_unref (data->transport);
-      g_slice_free (struct _extra_bytestream_negotiate_cb_data, data);
+      g_object_unref (transport);
     }
 
   lm_message_unref (msg);
-- 
1.5.6.5



More information about the telepathy-commits mailing list