From 6de256c2a2b23f30d35e4a2213ad5839bf141d06 Mon Sep 17 00:00:00 2001 From: Not Zed Date: Sun, 24 Dec 2000 00:46:20 +0000 Subject: Lock the command channel while searching. (imap_body_contains): If 2000-12-24 Not Zed * providers/imap/camel-imap-search.c (imap_body_contains): Lock the command channel while searching. (imap_body_contains): If performing a whole uid search, then add references to our own summary items, dont look it up in the folder. This way they can't vanish unexpectedly. * providers/imap/camel-imap-folder.h (CamelImapFolder): Added a private field. * providers/imap/camel-imap-private.h: Added lock for imap searches. * Merge from camel-mt-branch. * providers/imap/camel-imap-folder.c (imap_update_summary): Merge fix, use the folder->summary. (imap_get_message_flags, imap_set_message_flags, imap_get_message_user_flag, imap_set_message_user_flag): Removed again. (camel_imap_folder_init): Setup private data/lock. (imap_finalize): Free private data/search lock. (imap_search_free): Lock the search_lock. (imap_search_by_expression): Lock the search lock when using the search object. Also copy/ref hte summary, rather than getting it directly. (imap_refresh_info): Free any info lookups. Use folder->summary not imap_folder->summary. And lock around commands. svn path=/trunk/; revision=7150 --- camel/tests/lib/folders.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'camel/tests/lib/folders.c') diff --git a/camel/tests/lib/folders.c b/camel/tests/lib/folders.c index 6f24cd483a..12136b0cc7 100644 --- a/camel/tests/lib/folders.c +++ b/camel/tests/lib/folders.c @@ -11,7 +11,7 @@ test_folder_counts(CamelFolder *folder, int total, int unread) { GPtrArray *s; int i, myunread; - const CamelMessageInfo *info; + CamelMessageInfo *info; push("test folder counts %d total %d unread", total, unread); @@ -41,6 +41,7 @@ test_folder_counts(CamelFolder *folder, int total, int unread) info = camel_folder_get_message_info(folder, s->pdata[i]); if (info->flags & CAMEL_MESSAGE_SEEN) myunread--; + camel_folder_free_message_info(folder, info); } check(unread == myunread); camel_folder_free_uids(folder, s); @@ -81,7 +82,7 @@ void test_folder_message(CamelFolder *folder, const char *uid) { CamelMimeMessage *msg; - const CamelMessageInfo *info; + CamelMessageInfo *info; GPtrArray *s; int i; CamelException *ex = camel_exception_new(); @@ -93,6 +94,7 @@ test_folder_message(CamelFolder *folder, const char *uid) info = camel_folder_get_message_info(folder, uid); check(info != NULL); check(strcmp(camel_message_info_uid(info), uid) == 0); + camel_folder_free_message_info(folder, info); /* then, getting message */ msg = camel_folder_get_message(folder, uid, ex); @@ -137,7 +139,7 @@ void test_folder_not_message(CamelFolder *folder, const char *uid) { CamelMimeMessage *msg; - const CamelMessageInfo *info; + CamelMessageInfo *info; GPtrArray *s; int i; CamelException *ex = camel_exception_new(); @@ -314,7 +316,7 @@ test_folder_message_ops(CamelSession *session, const char *name, int local) int j; int indexed, max; GPtrArray *uids; - const CamelMessageInfo *info; + CamelMessageInfo *info; max=local?2:1; @@ -390,6 +392,7 @@ test_folder_message_ops(CamelSession *session, const char *name, int local) check_msg(strcmp(camel_message_info_subject(info), subject)==0, "info->subject %s", camel_message_info_subject(info)); camel_folder_free_uids(folder, uids); + camel_folder_free_message_info(folder, info); pull(); test_free(subject); @@ -429,6 +432,7 @@ test_folder_message_ops(CamelSession *session, const char *name, int local) check_msg(strcmp(camel_message_info_subject(info), subject)==0, "info->subject %s", camel_message_info_subject(info)); test_free(subject); + camel_folder_free_message_info(folder, info); pull(); } @@ -455,6 +459,7 @@ test_folder_message_ops(CamelSession *session, const char *name, int local) check_msg(strcmp(camel_message_info_subject(info), subject)==0, "info->subject %s", camel_message_info_subject(info)); test_free(subject); + camel_folder_free_message_info(folder, info); pull(); } pull(); @@ -483,6 +488,7 @@ test_folder_message_ops(CamelSession *session, const char *name, int local) check_msg(strcmp(camel_message_info_subject(info), subject)==0, "info->subject %s", camel_message_info_subject(info)); test_free(subject); + camel_folder_free_message_info(folder, info); pull(); } pull(); -- cgit v1.2.3