From a31ef049c0dcc0916b68f1ef099e1c9f44aac75d Mon Sep 17 00:00:00 2001 From: 7 Date: Wed, 17 Oct 2001 22:45:18 +0000 Subject: Clone the folderinfo before passing to async event. (real_folder_created): 2001-10-17 * 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 --- mail/ChangeLog | 11 +++++++++++ mail/mail-folder-cache.c | 8 ++++++-- mail/mail-ops.c | 2 +- 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 + + * 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 * 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) ***************************************************** */ -- cgit