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;
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);