changeset 2890:10d88ed22df0 HEAD

recent flag fixes
author Timo Sirainen <tss@iki.fi>
date Wed, 24 Nov 2004 19:43:52 +0200
parents 51982771ba4c
children aad29dd2c1c5
files src/lib-storage/index/index-sync.c
diffstat 1 files changed, 12 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/index/index-sync.c	Wed Nov 24 19:32:06 2004 +0200
+++ b/src/lib-storage/index/index-sync.c	Wed Nov 24 19:43:52 2004 +0200
@@ -85,19 +85,19 @@
 	count = seq2 - seq1 + 1;
 
 	data = buffer_get_data(ibox->recent_flags, &size);
-	if (idx > size)
-		return;
-	if (idx + count > size)
-		count = size - idx;
+	if (idx < size) {
+		if (idx + count > size)
+			count = size - idx;
 
-	for (i = 0; i < count; i++) {
-		if (data[idx+i])
-			ibox->recent_flags_count--;
+		for (i = 0; i < count; i++) {
+			if (data[idx+i])
+				ibox->recent_flags_count--;
+		}
+
+		buffer_copy(ibox->recent_flags, idx,
+			    ibox->recent_flags, idx + count, (size_t)-1);
+		buffer_set_used_size(ibox->recent_flags, size - count);
 	}
-
-	buffer_copy(ibox->recent_flags, idx,
-		    ibox->recent_flags, idx + count, (size_t)-1);
-	buffer_set_used_size(ibox->recent_flags, size - count);
         ibox->recent_flags_start_seq -= move;
 }
 
@@ -246,9 +246,7 @@
 						    ctx->messages_count+1,
 						    messages_count);
 		}
-
-		if (ibox->recent_flags_count != ibox->synced_recent_count)
-			ibox->synced_recent_count = ibox->recent_flags_count;
+		ibox->synced_recent_count = ibox->recent_flags_count;
 
 		ret = index_storage_get_status_locked(ctx->ibox,
 						      SYNC_STATUS_FLAGS,