diff options
Diffstat (limited to 'camel/camel-folder-summary.c')
-rw-r--r-- | camel/camel-folder-summary.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/camel/camel-folder-summary.c b/camel/camel-folder-summary.c index 8cc355b26c..2591e868ab 100644 --- a/camel/camel-folder-summary.c +++ b/camel/camel-folder-summary.c @@ -336,18 +336,17 @@ camel_folder_summary_index(CamelFolderSummary *s, int i) { CamelMessageInfo *info = NULL; - CAMEL_SUMMARY_LOCK(s, ref_lock); CAMEL_SUMMARY_LOCK(s, summary_lock); + CAMEL_SUMMARY_LOCK(s, ref_lock); if (i<s->messages->len) info = g_ptr_array_index(s->messages, i); - CAMEL_SUMMARY_UNLOCK(s, summary_lock); - if (info) info->refcount++; CAMEL_SUMMARY_UNLOCK(s, ref_lock); + CAMEL_SUMMARY_UNLOCK(s, summary_lock); return info; } @@ -369,8 +368,8 @@ camel_folder_summary_array(CamelFolderSummary *s) GPtrArray *res = g_ptr_array_new(); int i; - CAMEL_SUMMARY_LOCK(s, ref_lock); CAMEL_SUMMARY_LOCK(s, summary_lock); + CAMEL_SUMMARY_LOCK(s, ref_lock); g_ptr_array_set_size(res, s->messages->len); for (i=0;i<s->messages->len;i++) { @@ -378,8 +377,8 @@ camel_folder_summary_array(CamelFolderSummary *s) info->refcount++; } - CAMEL_SUMMARY_UNLOCK(s, summary_lock); CAMEL_SUMMARY_UNLOCK(s, ref_lock); + CAMEL_SUMMARY_UNLOCK(s, summary_lock); return res; } @@ -421,17 +420,16 @@ camel_folder_summary_uid(CamelFolderSummary *s, const char *uid) { CamelMessageInfo *info; - CAMEL_SUMMARY_LOCK(s, ref_lock); CAMEL_SUMMARY_LOCK(s, summary_lock); + CAMEL_SUMMARY_LOCK(s, ref_lock); info = g_hash_table_lookup(s->messages_uid, uid); - CAMEL_SUMMARY_UNLOCK(s, summary_lock); - if (info) info->refcount++; CAMEL_SUMMARY_UNLOCK(s, ref_lock); + CAMEL_SUMMARY_UNLOCK(s, summary_lock); return info; } @@ -1062,18 +1060,18 @@ void camel_folder_summary_remove_uid(CamelFolderSummary *s, const char *uid) CamelMessageInfo *oldinfo; char *olduid; - CAMEL_SUMMARY_LOCK(s, ref_lock); CAMEL_SUMMARY_LOCK(s, summary_lock); + CAMEL_SUMMARY_LOCK(s, ref_lock); if (g_hash_table_lookup_extended(s->messages_uid, uid, (void *)&olduid, (void *)&oldinfo)) { /* make sure it doesn't vanish while we're removing it */ oldinfo->refcount++; - CAMEL_SUMMARY_UNLOCK(s, summary_lock); CAMEL_SUMMARY_UNLOCK(s, ref_lock); + CAMEL_SUMMARY_UNLOCK(s, summary_lock); camel_folder_summary_remove(s, oldinfo); camel_folder_summary_info_free(s, oldinfo); } else { - CAMEL_SUMMARY_UNLOCK(s, summary_lock); CAMEL_SUMMARY_UNLOCK(s, ref_lock); + CAMEL_SUMMARY_UNLOCK(s, summary_lock); } } |