aboutsummaryrefslogtreecommitdiffstats
path: root/mail/mail-ops.c
diff options
context:
space:
mode:
authorNot Zed <NotZed@Ximian.com>2001-02-09 09:48:04 +0800
committerMichael Zucci <zucchi@src.gnome.org>2001-02-09 09:48:04 +0800
commitcd101b3ffcbe06d7b40bc19adbc66b2ad843a1c9 (patch)
tree4e58365acab06da8c310908bcca7931ad94b66a9 /mail/mail-ops.c
parenta0eb13592633e0a5f06dc522dd8df3d9efdd70a0 (diff)
downloadgsoc2013-evolution-cd101b3ffcbe06d7b40bc19adbc66b2ad843a1c9.tar.gz
gsoc2013-evolution-cd101b3ffcbe06d7b40bc19adbc66b2ad843a1c9.tar.zst
gsoc2013-evolution-cd101b3ffcbe06d7b40bc19adbc66b2ad843a1c9.zip
only free driver, if set. (fetch_mail_fetched): Unref the driver here, so
2001-02-09 Not Zed <NotZed@Ximian.com> * mail-ops.c (filter_folder_free): only free driver, if set. (fetch_mail_fetched): Unref the driver here, so it can cleanup before we call the 'done' callback. * component-factory.c (owner_set_cb): Add setup for mail autoreceive stuff. * mail-send-recv.c (free_info_data): Free the send info's from teh active hash, not the running list. (receive_done): As we finish downloads, remove them and clean them up, and also close the window. (mail_autoreceive_setup): New function to setup & maintain automatic download stuff. svn path=/trunk/; revision=8134
Diffstat (limited to 'mail/mail-ops.c')
-rw-r--r--mail/mail-ops.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/mail/mail-ops.c b/mail/mail-ops.c
index 3b81d62d6a..231b22ad95 100644
--- a/mail/mail-ops.c
+++ b/mail/mail-ops.c
@@ -209,7 +209,8 @@ filter_folder_free(struct _mail_msg *mm)
camel_operation_unref(m->cancel);
if (m->destination)
camel_object_unref((CamelObject *)m->destination);
- camel_object_unref((CamelObject *)m->driver);
+ if (m->driver)
+ camel_object_unref((CamelObject *)m->driver);
}
static struct _mail_msg_op filter_folder_op = {
@@ -333,6 +334,11 @@ fetch_mail_fetched(struct _mail_msg *mm)
{
struct _fetch_mail_msg *m = (struct _fetch_mail_msg *)mm;
+ /* we unref this here as it may have more work to do (syncing
+ folders and whatnot) before we are really done */
+ camel_object_unref((CamelObject *)m->fmsg.driver);
+ m->fmsg.driver = NULL;
+
if (m->done)
m->done(m->source_uri, m->data);
}