Mercurial > dovecot > core-2.2
changeset 12768:0a8ed89df696
lib-storage: Crashfix on thread handling.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Mon, 28 Feb 2011 16:34:04 +0200 |
parents | c5816dd58dcf |
children | 5b16b5436e4e |
files | src/lib-storage/index/index-thread.c |
diffstat | 1 files changed, 5 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-storage/index/index-thread.c Mon Feb 28 16:33:50 2011 +0200 +++ b/src/lib-storage/index/index-thread.c Mon Feb 28 16:34:04 2011 +0200 @@ -13,6 +13,7 @@ #include "mail-search-build.h" #include "mailbox-search-result-private.h" #include "index-storage.h" +#include "index-search-private.h" #include "index-thread-private.h" #include <stdlib.h> @@ -299,6 +300,7 @@ struct mail_thread_mailbox *tbox = MAIL_THREAD_CONTEXT(ctx->box); struct mail_search_args *search_args; struct mail_search_context *search_ctx; + struct index_search_context *search_ctx_i; struct mail *mail; struct mail_private *pmail; uint32_t last_uid, seq1, seq2; @@ -337,8 +339,8 @@ search_ctx = mailbox_search_init(ctx->t, search_args, NULL); mail = mail_alloc(ctx->t, 0, NULL); - pmail = (struct mail_private *)mail; - pmail->extra_wanted_headers = + search_ctx_i = (struct index_search_context *)search_ctx; + search_ctx_i->extra_wanted_headers = mailbox_header_lookup_init(ctx->box, wanted_headers); while (mailbox_search_next(search_ctx, mail)) { @@ -347,7 +349,6 @@ break; } } - mailbox_header_lookup_unref(&pmail->extra_wanted_headers); mail_free(&mail); if (mailbox_search_deinit(&search_ctx) < 0) ret = -1; @@ -572,7 +573,7 @@ tbox->ctx = ctx; mail_thread_cache_sync_remove(tbox, ctx); - ret = mail_thread_index_map_build(ctx) < 0; + ret = mail_thread_index_map_build(ctx); if (ret == 0) mail_thread_cache_sync_add(tbox, ctx, search_ctx); if (mailbox_search_deinit(&search_ctx) < 0)