From: Timo Sirainen Date: Sat, 9 May 2009 16:29:08 +0000 (-0400) Subject: mail_transaction_log_view_clear() should keep oldest_file_seq and newer referenced. X-Git-Tag: 2.0.alpha1~802 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=096953143c4032bad154637f687551856f7946cb;p=thirdparty%2Fdovecot%2Fcore.git mail_transaction_log_view_clear() should keep oldest_file_seq and newer referenced. --HG-- branch : HEAD --- diff --git a/src/lib-index/mail-transaction-log-view.c b/src/lib-index/mail-transaction-log-view.c index 24e3ea4b2c..735a11bdda 100644 --- a/src/lib-index/mail-transaction-log-view.c +++ b/src/lib-index/mail-transaction-log-view.c @@ -313,8 +313,10 @@ void mail_transaction_log_view_clear(struct mail_transaction_log_view *view, 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; diff --git a/src/lib-index/mail-transaction-log.h b/src/lib-index/mail-transaction-log.h index 0886f81da5..f36e12fe38 100644 --- a/src/lib-index/mail-transaction-log.h +++ b/src/lib-index/mail-transaction-log.h @@ -175,8 +175,8 @@ int mail_transaction_log_view_set(struct mail_transaction_log_view *view, 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);