changeset 7643:803e3574f4f5 HEAD

Keep mail_search_args referenced during searches.
author Timo Sirainen <tss@iki.fi>
date Wed, 04 Jun 2008 01:07:14 +0300
parents 077bb84e9e77
children eb17957ee1fe
files src/lib-storage/mail-storage.c
diffstat 1 files changed, 6 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/mail-storage.c	Wed Jun 04 00:51:58 2008 +0300
+++ b/src/lib-storage/mail-storage.c	Wed Jun 04 01:07:14 2008 +0300
@@ -634,6 +634,7 @@
 		    struct mail_search_args *args,
 		    const enum mail_sort_type *sort_program)
 {
+	mail_search_args_ref(args);
 	mail_search_args_simplify(args->args);
 	return t->box->v.search_init(t, args, sort_program);
 }
@@ -641,9 +642,13 @@
 int mailbox_search_deinit(struct mail_search_context **_ctx)
 {
 	struct mail_search_context *ctx = *_ctx;
+	struct mail_search_args *args = ctx->args;
+	int ret;
 
 	*_ctx = NULL;
-	return ctx->transaction->box->v.search_deinit(ctx);
+	ret = ctx->transaction->box->v.search_deinit(ctx);
+	mail_search_args_unref(&args);
+	return ret;
 }
 
 int mailbox_search_next(struct mail_search_context *ctx, struct mail *mail)