diff options
author | Srinivasa Ragavan <sragavan@novell.com> | 2009-01-30 09:28:43 +0000 |
---|---|---|
committer | Srinivasa Ragavan <sragavan@src.gnome.org> | 2009-01-30 09:28:43 +0000 |
commit | 67ee0c165c2b69b7c93e2ee104afb565d8ce74fc (patch) | |
tree | 9bb0bd2e64ad9f825efa97a7486d1ba3945a3b76 | |
parent | 62e25a6d48fe2f3b3a95d4dbe1a94f1b898f7b01 (diff) | |
download | evolution-data-server-67ee0c165c2b69b7c93e2ee104afb565d8ce74fc.tar.gz |
Removed unused stuff from db.
2009-01-30 Srinivasa Ragavan <sragavan@novell.com>
* camel-vee-folder.c: (vee_sync), (vf_getv): Removed unused stuff from
db.
svn path=/branches/gnome-2-24/; revision=10003
-rw-r--r-- | camel/ChangeLog | 5 | ||||
-rw-r--r-- | camel/camel-vee-folder.c | 22 |
2 files changed, 26 insertions, 1 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog index 20df0069d..5a7c40a8f 100644 --- a/camel/ChangeLog +++ b/camel/ChangeLog @@ -1,5 +1,10 @@ 2009-01-30 Srinivasa Ragavan <sragavan@novell.com> + * camel-vee-folder.c: (vee_sync), (vf_getv): Removed unused stuff from + db. + +2009-01-30 Srinivasa Ragavan <sragavan@novell.com> + ** Fix for bug #557348 * camel-folder-summary.c: (camel_folder_summary_add), diff --git a/camel/camel-vee-folder.c b/camel/camel-vee-folder.c index 98fdb71f1..fbe06d35e 100644 --- a/camel/camel-vee-folder.c +++ b/camel/camel-vee-folder.c @@ -611,7 +611,27 @@ vee_sync(CamelFolder *folder, gboolean expunge, CamelException *ex) CAMEL_VEE_FOLDER_UNLOCK(vf, changed_lock); } #endif + if (vf->priv->unread_vfolder == 1) { + /* Cleanup Junk/Trash uids */ + int i, count; + count = folder->summary->uids->len; + GSList *del = NULL; + + for (i=0; i < count; i++) { + CamelVeeMessageInfo *mi = camel_folder_summary_index (folder->summary, i); + if (mi->old_flags & CAMEL_MESSAGE_DELETED) { + del = g_slist_prepend (del, (gpointer) camel_pstring_strdup(((CamelMessageInfo *)mi)->uid)); + camel_folder_summary_remove_index_fast (folder->summary, i); + count--; + i--; + } + camel_message_info_free (mi); + } + camel_db_delete_vuids (folder->parent_store->cdb_w, folder->full_name, "", del, ex); + g_slist_foreach (del, (GFunc) camel_pstring_free, NULL); + g_slist_free (del); + } CAMEL_VEE_FOLDER_UNLOCK(vf, subfolder_lock); camel_object_state_write(vf); @@ -2029,7 +2049,7 @@ vf_getv(CamelObject *object, CamelException *ex, CamelArgGetV *args) break; case CAMEL_FOLDER_ARG_VISIBLE: if (vf->priv->unread_vfolder == 1) - count = unread == -1 ? 0 : unread - deleted - junked_not_deleted; + count = unread == -1 ? 0 : unread - junked_not_deleted; else count = visible == -1 ? 0 : visible; |