changeset 5868:cff069467884 HEAD

Don't clone a map when expunging if all messages were already expunged.
author Timo Sirainen <tss@iki.fi>
date Mon, 02 Jul 2007 23:53:22 +0300
parents 1b70ae186611
children 38ff50597e54
files src/lib-index/mail-index-sync-update.c
diffstat 1 files changed, 1 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-index/mail-index-sync-update.c	Mon Jul 02 23:46:22 2007 +0300
+++ b/src/lib-index/mail-index-sync-update.c	Mon Jul 02 23:53:22 2007 +0300
@@ -220,13 +220,6 @@
 	uint32_t seq_count, seq, seq1, seq2;
 	unsigned int i;
 
-	/* we don't ever want to move around data inside a memory mapped file.
-	   it gets corrupted too easily if we crash in the middle. */
-	// FIXME: it's necessary for current view code that we get atomic
-	// map even if these messages are already expunged, because the
-	// view code doesn't check that and our index_int_offset goes wrong
-	map = mail_index_sync_get_atomic_map(ctx);
-
 	for (i = 0; i < count; i++, e++) {
 		if (mail_index_lookup_uid_range(ctx->view, e->uid1, e->uid2,
 						&seq1, &seq2) < 0)
@@ -236,6 +229,7 @@
 			continue;
 		}
 
+		map = mail_index_sync_get_atomic_map(ctx);
 		for (seq = seq1; seq <= seq2; seq++) {
 			rec = MAIL_INDEX_MAP_IDX(map, seq-1);
 			mail_index_sync_header_update_counts(ctx,