]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
CONTEXT=SEARCH optimization: Don't look up expunged messages' UIDs if we
authorTimo Sirainen <tss@iki.fi>
Tue, 17 Jun 2008 10:56:50 +0000 (13:56 +0300)
committerTimo Sirainen <tss@iki.fi>
Tue, 17 Jun 2008 10:56:50 +0000 (13:56 +0300)
don't have any saved search results.

--HG--
branch : HEAD

src/lib-storage/index/index-sync-search.c

index 7815d6f220c1c498d9eadee6d02957343032a53f..274061a87cbac54a8052e5e7899696481af8ce84 100644 (file)
@@ -226,18 +226,19 @@ void index_sync_search_results_update(struct index_mailbox_sync_context *ctx)
 
 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);
                }
        }
 }