aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy/empathy-dispatcher.c
diff options
context:
space:
mode:
authorXavier Claessens <xclaesse@src.gnome.org>2008-11-22 00:24:36 +0800
committerXavier Claessens <xclaesse@src.gnome.org>2008-11-22 00:24:36 +0800
commit7b771c7fe5ec0f01ee960d2c8e8e05e1122b2da6 (patch)
treeda59f2854e675d31b2483dcd84d7ff0608e30408 /libempathy/empathy-dispatcher.c
parent11418f5e077e54289515bb89b57e56acd36b08ce (diff)
downloadgsoc2013-empathy-7b771c7fe5ec0f01ee960d2c8e8e05e1122b2da6.tar
gsoc2013-empathy-7b771c7fe5ec0f01ee960d2c8e8e05e1122b2da6.tar.gz
gsoc2013-empathy-7b771c7fe5ec0f01ee960d2c8e8e05e1122b2da6.tar.bz2
gsoc2013-empathy-7b771c7fe5ec0f01ee960d2c8e8e05e1122b2da6.tar.lz
gsoc2013-empathy-7b771c7fe5ec0f01ee960d2c8e8e05e1122b2da6.tar.xz
gsoc2013-empathy-7b771c7fe5ec0f01ee960d2c8e8e05e1122b2da6.tar.zst
gsoc2013-empathy-7b771c7fe5ec0f01ee960d2c8e8e05e1122b2da6.zip
Fix ref counting of tp_file, make it singleton per channel, and add a _keep_alive method that adds a tmp ref until the transfer finishes.
svn path=/trunk/; revision=1904
Diffstat (limited to 'libempathy/empathy-dispatcher.c')
-rw-r--r--libempathy/empathy-dispatcher.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/libempathy/empathy-dispatcher.c b/libempathy/empathy-dispatcher.c
index 4691ef6c1..21b6bcccb 100644
--- a/libempathy/empathy-dispatcher.c
+++ b/libempathy/empathy-dispatcher.c
@@ -957,11 +957,10 @@ file_channel_create_cb (TpConnection *connection,
request->handle,
NULL);
- /* FIXME: tp_file is leaked, but we need to keep it alive until the data
- * transfer is done. This is not the object that is going to be used
- * for the ft manager. */
tp_file = empathy_tp_file_new (channel);
empathy_tp_file_offer (tp_file, request->gfile, NULL);
+ empathy_tp_file_keep_alive (tp_file);
+ g_object_unref (tp_file);
g_object_unref (request->gfile);
g_slice_free (FileChannelRequest, request);