changeset 8973:796149c5f3f0 HEAD

virtual: Some cleanups and fixes.
author Timo Sirainen <tss@iki.fi>
date Mon, 20 Apr 2009 14:45:07 -0400
parents 9ab0177cd004
children 1f4f68091243
files src/plugins/virtual/virtual-sync.c
diffstat 1 files changed, 8 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/plugins/virtual/virtual-sync.c	Mon Apr 20 14:43:15 2009 -0400
+++ b/src/plugins/virtual/virtual-sync.c	Mon Apr 20 14:45:07 2009 -0400
@@ -489,7 +489,7 @@
 {
 	const struct seq_range *uids;
 	struct virtual_backend_uidmap *uidmap;
-	unsigned int i, src, dest, uid_count, rec_count, left;
+	unsigned int i, src, dest, uid_count, rec_count;
 	uint32_t uid, vseq;
 
 	uids = array_get(removed_uids, &uid_count);
@@ -507,7 +507,8 @@
 		i_unreached();
 
 	/* remove the unwanted messages */
-	for (i = src = dest = 0; i < uid_count; i++) {
+	dest = src;
+	for (i = 0; i < uid_count; i++) {
 		uid = uids[i].seq1;
 		while (uidmap[src].real_uid != uid) {
 			uidmap[dest++] = uidmap[src++];
@@ -515,6 +516,8 @@
 		}
 
 		for (; uid <= uids[i].seq2; uid++, src++) {
+			i_assert(src < rec_count);
+			i_assert(uidmap[src].real_uid == uid);
 			if (!mail_index_lookup_seq(ctx->sync_view,
 						   uidmap[src].virtual_uid,
 						   &vseq))
@@ -522,8 +525,7 @@
 			mail_index_expunge(ctx->trans, vseq);
 		}
 	}
-	left = rec_count - src;
-	array_delete(&bbox->uids, dest, src - dest);
+	array_delete(&bbox->uids, dest, rec_count - dest);
 }
 
 static void
@@ -576,6 +578,8 @@
 		}
 
 		for (; add_uid <= added_uids[i].seq2; add_uid++, dest++) {
+			i_assert(dest < rec_count);
+
 			uidmap[dest].real_uid = add_uid;
 			uidmap[dest].virtual_uid = 0;