aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author7 <NotZed@Ximian.com>2001-10-18 06:45:18 +0800
committerMichael Zucci <zucchi@src.gnome.org>2001-10-18 06:45:18 +0800
commita31ef049c0dcc0916b68f1ef099e1c9f44aac75d (patch)
tree44362b74c05d8e9cfe4e1b4b54526397a37a5119
parent4b9dbd4269daf414066e5c7a15b992e3efedbfb2 (diff)
downloadgsoc2013-evolution-a31ef049c0dcc0916b68f1ef099e1c9f44aac75d.tar.gz
gsoc2013-evolution-a31ef049c0dcc0916b68f1ef099e1c9f44aac75d.tar.zst
gsoc2013-evolution-a31ef049c0dcc0916b68f1ef099e1c9f44aac75d.zip
Clone the folderinfo before passing to async event. (real_folder_created):
2001-10-17 <NotZed@Ximian.com> * mail-folder-cache.c (store_folder_subscribed): Clone the folderinfo before passing to async event. (real_folder_created): Free when done. (store_folder_unsubscribed): (real_folder_deleted): And same here. * mail-ops.c (mail_expunge_folder): Use the queued thread for expunging folders. svn path=/trunk/; revision=13741
-rw-r--r--mail/ChangeLog11
-rw-r--r--mail/mail-folder-cache.c8
-rw-r--r--mail/mail-ops.c2
3 files changed, 18 insertions, 3 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index 316a2def67..42b31f3272 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,3 +1,14 @@
+2001-10-17 <NotZed@Ximian.com>
+
+ * mail-folder-cache.c (store_folder_subscribed): Clone the
+ folderinfo before passing to async event.
+ (real_folder_created): Free when done.
+ (store_folder_unsubscribed):
+ (real_folder_deleted): And same here.
+
+ * mail-ops.c (mail_expunge_folder): Use the queued thread for
+ expunging folders.
+
2001-10-17 Jeffrey Stedfast <fejj@ximian.com>
* mail-ops.c (mail_send_message): No longer need to copy the
diff --git a/mail/mail-folder-cache.c b/mail/mail-folder-cache.c
index ccff8f7555..d60dcbddc3 100644
--- a/mail/mail-folder-cache.c
+++ b/mail/mail-folder-cache.c
@@ -278,6 +278,7 @@ real_folder_created(CamelStore *store, struct _store_info *si, CamelFolderInfo *
{
setup_folder(fi, si);
camel_object_unref((CamelObject *)store);
+ camel_folder_info_free(fi);
}
static void
@@ -293,7 +294,8 @@ store_folder_subscribed(CamelObject *o, void *event_data, void *data)
if (si)
mail_async_event_emit(si->async_event,
- (CamelObjectEventHookFunc)real_folder_created, o, si, event_data);
+ (CamelObjectEventHookFunc)real_folder_created, o, si,
+ camel_folder_info_clone(event_data));
}
static void
@@ -314,6 +316,7 @@ real_folder_deleted(CamelStore *store, void *event_data, CamelFolderInfo *fi)
mail_vfolder_remove_uri(store, fi->url);
camel_object_unref((CamelObject *)store);
+ camel_folder_info_free(fi);
}
static void
@@ -329,7 +332,8 @@ store_folder_unsubscribed(CamelObject *o, void *event_data, void *data)
if (si)
mail_async_event_emit(si->async_event,
- (CamelObjectEventHookFunc)real_folder_deleted, o, si, event_data);
+ (CamelObjectEventHookFunc)real_folder_deleted, o, si,
+ camel_folder_info_clone(event_data));
}
static void
diff --git a/mail/mail-ops.c b/mail/mail-ops.c
index e0780d1da3..1693825668 100644
--- a/mail/mail-ops.c
+++ b/mail/mail-ops.c
@@ -1585,7 +1585,7 @@ mail_expunge_folder(CamelFolder *folder, void (*done) (CamelFolder *folder, void
m->data = data;
m->done = done;
- e_thread_put(mail_thread_new, (EMsg *)m);
+ e_thread_put(mail_thread_queued, (EMsg *)m);
}
/* ** GET MESSAGE(s) ***************************************************** */