evolution-data-server r9513 - trunk/camel
- From: sragavan svn gnome org
- To: svn-commits-list gnome org
- Subject: evolution-data-server r9513 - trunk/camel
- Date: Wed, 10 Sep 2008 19:26:46 +0000 (UTC)
Author: sragavan
Date: Wed Sep 10 19:26:46 2008
New Revision: 9513
URL: http://svn.gnome.org/viewvc/evolution-data-server?rev=9513&view=rev
Log:
2008-09-11 Srinivasa Ragavan <sragavan novell com>
* camel-vee-folder.c: (folder_changed_change): Don't hold one db lock
and acquire folder lock. It dead locks
Modified:
trunk/camel/ChangeLog
trunk/camel/camel-vee-folder.c
Modified: trunk/camel/camel-vee-folder.c
==============================================================================
--- trunk/camel/camel-vee-folder.c (original)
+++ trunk/camel/camel-vee-folder.c Wed Sep 10 19:26:46 2008
@@ -1453,6 +1453,7 @@
GHashTable *matches_hash;
CamelVeeFolder *folder_unmatched = vf->parent_vee_store ? vf->parent_vee_store->folder_unmatched : NULL;
GHashTable *unmatched_uids = vf->parent_vee_store ? vf->parent_vee_store->unmatched_uids : NULL;
+ GPtrArray *present = NULL;
/* Check the folder hasn't beem removed while we weren't watching */
CAMEL_VEE_FOLDER_LOCK(vf, subfolder_lock);
@@ -1560,7 +1561,7 @@
/* Change any newly changed */
if (always_changed) {
- GPtrArray *present = camel_folder_search_by_uids(sub, vf->expression, always_changed, NULL);
+ present = camel_folder_search_by_uids(sub, vf->expression, always_changed, NULL);
GHashTable *ht_present = g_hash_table_new (g_str_hash, g_str_equal);
for (i=0;present && i<present->len;i++) {
@@ -1574,7 +1575,6 @@
}
}
- camel_folder_search_free (sub, present);
g_hash_table_destroy (ht_present);
g_ptr_array_free(always_changed, TRUE);
}
@@ -1650,6 +1650,8 @@
/* Cleanup stuff on our folder */
if (matches_added)
camel_folder_search_free(sub, matches_added);
+ if (present)
+ camel_folder_search_free (sub, present);
if (matches_changed)
camel_folder_search_free(sub, matches_changed);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]