evolution-data-server r9511 - trunk/camel
- From: sragavan svn gnome org
- To: svn-commits-list gnome org
- Subject: evolution-data-server r9511 - trunk/camel
- Date: Wed, 10 Sep 2008 05:49:56 +0000 (UTC)
Author: sragavan
Date: Wed Sep 10 05:49:55 2008
New Revision: 9511
URL: http://svn.gnome.org/viewvc/evolution-data-server?rev=9511&view=rev
Log:
2008-09-10 Srinivasa Ragavan <sragavan novell com>
* camel/camel-vee-folder.c: Fix vfolders while unloading unmatched
search indexes.
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 05:49:55 2008
@@ -1560,8 +1560,22 @@
/* Change any newly changed */
if (always_changed) {
- for (i=0;i<always_changed->len;i++)
- folder_changed_change_uid(sub, always_changed->pdata[i], hash, vf);
+ GPtrArray *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++) {
+ folder_changed_change_uid(sub, present->pdata[i], hash, vf);
+ g_hash_table_insert (ht_present, present->pdata[i], present->pdata[i]);
+ }
+
+ for (i=0; i<always_changed->len; i++) {
+ if (!present || !g_hash_table_lookup(ht_present, always_changed->pdata[i])) {
+ folder_changed_remove_uid(sub, always_changed->pdata[i], hash, FALSE, vf);
+ }
+ }
+
+ camel_folder_search_free (sub, present);
+ g_hash_table_destroy (ht_present);
g_ptr_array_free(always_changed, TRUE);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]