diff options
author | Xavier Claessens <xclaesse@src.gnome.org> | 2008-11-22 00:24:36 +0800 |
---|---|---|
committer | Xavier Claessens <xclaesse@src.gnome.org> | 2008-11-22 00:24:36 +0800 |
commit | 7b771c7fe5ec0f01ee960d2c8e8e05e1122b2da6 (patch) | |
tree | da59f2854e675d31b2483dcd84d7ff0608e30408 /libempathy/empathy-dispatcher.c | |
parent | 11418f5e077e54289515bb89b57e56acd36b08ce (diff) | |
download | gsoc2013-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.c | 5 |
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); |