changeset 9020:a6779d086785 HEAD

mail_transaction_log_view_clear() should keep oldest_file_seq and newer referenced.
author Timo Sirainen <tss@iki.fi>
date Sat, 09 May 2009 12:28:33 -0400
parents 7ccc533e30bb
children e36a9edb5fb0
files src/lib-index/mail-transaction-log-view.c src/lib-index/mail-transaction-log.h
diffstat 2 files changed, 6 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-index/mail-transaction-log-view.c	Thu May 07 15:04:12 2009 -0400
+++ b/src/lib-index/mail-transaction-log-view.c	Sat May 09 12:28:33 2009 -0400
@@ -314,8 +314,10 @@
 	mail_transaction_log_view_unref_all(view);
 	if (mail_transaction_log_find_file(view->log, oldest_file_seq, FALSE,
 					   &file) > 0) {
-		array_append(&view->file_refs, &file, 1);
-		file->refcount++;
+		for (; file != NULL; file = file->next) {
+			array_append(&view->file_refs, &file, 1);
+			file->refcount++;
+		}
 	}
 
 	view->cur = view->head = view->tail = NULL;
--- a/src/lib-index/mail-transaction-log.h	Thu May 07 15:04:12 2009 -0400
+++ b/src/lib-index/mail-transaction-log.h	Sat May 09 12:28:33 2009 -0400
@@ -169,8 +169,8 @@
 				  uint32_t min_file_seq, uoff_t min_file_offset,
 				  uint32_t max_file_seq, uoff_t max_file_offset,
 				  bool *reset_r);
-/* Clear the view. Keep oldest_file_seq log referenced so we don't get
-   desynced. */
+/* Clear the view. Keep oldest_file_seq and newer log files referenced so we
+   don't get desynced. */
 void mail_transaction_log_view_clear(struct mail_transaction_log_view *view,
 				     uint32_t oldest_file_seq);