changeset 2599:859dddfed80c HEAD

if there's pending cache_reset in log file make sure appended records don't have invalid cache_offsets.
author Timo Sirainen <tss@iki.fi>
date Sat, 11 Sep 2004 19:14:10 +0300
parents 2568be07706f
children 0f7327288390
files src/lib-index/mail-transaction-log.c
diffstat 1 files changed, 11 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-index/mail-transaction-log.c	Sat Sep 11 18:40:22 2004 +0300
+++ b/src/lib-index/mail-transaction-log.c	Sat Sep 11 19:14:10 2004 +0300
@@ -1044,6 +1044,17 @@
 	    t->cache_updates != NULL) {
 		buffer_free(t->cache_updates);
 		t->cache_updates = NULL;
+
+		if (t->appends != NULL) {
+			struct mail_index_record *rec;
+			size_t i, size;
+
+			rec = buffer_get_modifyable_data(t->appends, &size);
+			size /= sizeof(*rec);
+
+			for (i = 0; i < size; i++)
+				rec[i].cache_offset = 0;
+		}
 	}
 
 	mail_transaction_log_view_close(sync_view);