evolution-data-server r9376 - in trunk/camel: . providers/local



Author: sragavan
Date: Mon Aug 18 10:10:54 2008
New Revision: 9376
URL: http://svn.gnome.org/viewvc/evolution-data-server?rev=9376&view=rev

Log:
	* camel/providers/local/camel-mbox-summary.c: Continue, if the summary
	isn't loaded.

   (use "git reset HEAD <file>..." to unstage)


Modified:
   trunk/camel/ChangeLog
   trunk/camel/providers/local/camel-mbox-summary.c

Modified: trunk/camel/providers/local/camel-mbox-summary.c
==============================================================================
--- trunk/camel/providers/local/camel-mbox-summary.c	(original)
+++ trunk/camel/providers/local/camel-mbox-summary.c	Mon Aug 18 10:10:54 2008
@@ -509,6 +509,7 @@
 	int ok = 0;
 	struct stat st;
 	off_t size = 0;
+	GSList *del = NULL;
 
 	d(printf("Calling summary update, from pos %d\n", (int)offset));
 
@@ -587,12 +588,19 @@
 			d(printf("uid '%s' vanished, removing", camel_message_info_uid(mi)));
 			if (changeinfo)
 				camel_folder_change_info_remove_uid(changeinfo, camel_message_info_uid(mi));
-			camel_folder_summary_remove(s, (CamelMessageInfo *)mi);
+			del = g_slist_prepend(del, (gpointer) camel_pstring_strdup(camel_message_info_uid(mi)));
+			camel_folder_summary_remove_index_fast (s, i);
 			count--;
 			i--;
 		}
 		camel_message_info_free(mi);
 	}
+	
+	/* Delete all in one transaction */
+	camel_db_delete_uids (s->folder->cdb, s->folder->full_name, del, ex);
+	g_slist_foreach (del, (GFunc) camel_pstring_free, NULL);
+	g_slist_free (del);	
+
 	mbs->changes = NULL;
 	
 	/* update the file size/mtime in the summary */



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]