dovecot-1.2: CONTEXT=SEARCH optimization: Don't look up expunged...

dovecot at dovecot.org dovecot at dovecot.org
Tue Jun 17 15:31:11 EEST 2008


details:   http://hg.dovecot.org/dovecot-1.2/rev/bc05d48eac44
changeset: 7879:bc05d48eac44
user:      Timo Sirainen <tss at iki.fi>
date:      Tue Jun 17 13:56:50 2008 +0300
description:
CONTEXT=SEARCH optimization: Don't look up expunged messages' UIDs if we
don't have any saved search results.

diffstat:

1 file changed, 6 insertions(+), 5 deletions(-)
src/lib-storage/index/index-sync-search.c |   11 ++++++-----

diffs (28 lines):

diff -r 1da72e385de4 -r bc05d48eac44 src/lib-storage/index/index-sync-search.c
--- a/src/lib-storage/index/index-sync-search.c	Tue Jun 17 12:36:25 2008 +0300
+++ b/src/lib-storage/index/index-sync-search.c	Tue Jun 17 13:56:50 2008 +0300
@@ -226,18 +226,19 @@ void index_sync_search_results_update(st
 
 void index_sync_search_results_expunge(struct index_mailbox_sync_context *ctx)
 {
+	struct mailbox *box = &ctx->ibox->box;
 	const struct seq_range *seqs;
 	unsigned int i, count;
 	uint32_t seq, uid;
 
-	if (ctx->expunges == NULL)
+	if (ctx->expunges == NULL || array_count(&box->search_results) == 0)
 		return;
 
 	seqs = array_get(ctx->expunges, &count);
 	for (i = 0; i < count; i++) {
 		for (seq = seqs[i].seq1; seq <= seqs[i].seq2; seq++) {
 			mail_index_lookup_uid(ctx->ibox->view, seq, &uid);
-			mailbox_search_results_remove(&ctx->ibox->box, uid);
-		}
-	}
-}
+			mailbox_search_results_remove(box, uid);
+		}
+	}
+}


More information about the dovecot-cvs mailing list