changeset 3325:38eaa792c405 HEAD

Don't call index_mail_parse_header() twice when searching headers. Caused assert-crashes.
author Timo Sirainen <tss@iki.fi>
date Sat, 23 Apr 2005 19:51:21 +0300
parents 2a8ff9cbb50b
children 5949ce51755b
files src/lib-storage/index/index-search.c
diffstat 1 files changed, 5 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/index/index-search.c	Sat Apr 23 18:52:16 2005 +0300
+++ b/src/lib-storage/index/index-search.c	Sat Apr 23 19:51:21 2005 +0300
@@ -33,7 +33,7 @@
 	pool_t hdr_pool;
 	const char *error;
 
-	int failed;
+	unsigned int failed:1;
 };
 
 struct search_header_context {
@@ -42,6 +42,7 @@
 
         struct message_header_line *hdr;
 
+	unsigned int parse_headers:1;
 	unsigned int custom_header:1;
 	unsigned int threading:1;
 };
@@ -423,7 +424,8 @@
 	if (hdr->eoh)
 		return;
 
-	index_mail_parse_header(NULL, hdr, ctx->index_context->imail);
+	if (ctx->parse_headers)
+		index_mail_parse_header(NULL, hdr, ctx->index_context->imail);
 
 	if (ctx->custom_header || strcasecmp(hdr->name, "Date") == 0) {
 		ctx->hdr = hdr;
@@ -498,6 +500,7 @@
 		hdr_ctx.index_context = ctx;
 		hdr_ctx.custom_header = TRUE;
 		hdr_ctx.args = args;
+		hdr_ctx.parse_headers = headers == NULL;
 
 		index_mail_parse_header_init(ctx->imail, headers_ctx);
 		message_parse_header(NULL, input, NULL,