[next] telepathy-glib: file-transfer-chan: don't call start_file_transfer() after disposal

Simon McVittie smcv at kemper.freedesktop.org
Thu Sep 12 08:20:20 PDT 2013


Module: telepathy-glib
Branch: next
Commit: 118dbf7c21ec88c85c1d527dfe1f6d3e704e9830
URL:    http://cgit.freedesktop.org/telepathy/telepathy-glib/commit/?id=118dbf7c21ec88c85c1d527dfe1f6d3e704e9830

Author: Guillaume Desmottes <guillaume.desmottes at collabora.co.uk>
Date:   Tue Mar 12 15:14:48 2013 +0100

file-transfer-chan: don't call start_file_transfer() after disposal

(cherry picked from commit 9ea571eca7d12648776c7179255711dbdd9aac25)
Reviewed-by: Simon McVittie <simon.mcvittie at collabora.co.uk>

---

 tests/lib/file-transfer-chan.c |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/tests/lib/file-transfer-chan.c b/tests/lib/file-transfer-chan.c
index ee05934..ae6b1c5 100644
--- a/tests/lib/file-transfer-chan.c
+++ b/tests/lib/file-transfer-chan.c
@@ -83,6 +83,8 @@ struct _TpTestsFileTransferChannelPrivate {
     gchar *unix_tmpdir;
     guint connection_id;
     TpSocketAccessControl access_control;
+
+    guint timer_id;
 };
 
 static void
@@ -137,6 +139,12 @@ dispose (GObject *object)
 {
   TpTestsFileTransferChannel *self = TP_TESTS_FILE_TRANSFER_CHANNEL (object);
 
+  if (self->priv->timer_id != 0)
+    {
+      g_source_remove (self->priv->timer_id);
+      self->priv->timer_id = 0;
+    }
+
   g_free (self->priv->content_hash);
   g_free (self->priv->content_type);
   g_free (self->priv->description);
@@ -493,7 +501,7 @@ file_transfer_provide_file (TpSvcChannelTypeFileTransfer *iface,
   self->priv->access_control = access_control;
 
   DEBUG ("Waiting 500ms and setting state to OPEN");
-  g_timeout_add (500, start_file_transfer, self);
+  self->priv->timer_id = g_timeout_add (500, start_file_transfer, self);
 
   // connect to self->priv->service incoming signal
   // when the signal returns, add x bytes per n seconds using timeout
@@ -561,7 +569,7 @@ file_transfer_accept_file (TpSvcChannelTypeFileTransfer *iface,
       TP_FILE_TRANSFER_STATE_CHANGE_REASON_REQUESTED);
 
   DEBUG ("Waiting 500ms and setting state to OPEN");
-  g_timeout_add (500, start_file_transfer, self);
+  self->priv->timer_id = g_timeout_add (500, start_file_transfer, self);
 
   tp_svc_channel_type_file_transfer_return_from_accept_file (context,
       address);



More information about the telepathy-commits mailing list