dovecot-1.2: Added mailbox_search_result_alloc() for building se...

dovecot at dovecot.org dovecot at dovecot.org
Wed Jun 18 08:04:08 EEST 2008


details:   http://hg.dovecot.org/dovecot-1.2/rev/9e4be86d4b7d
changeset: 7893:9e4be86d4b7d
user:      Timo Sirainen <tss at iki.fi>
date:      Wed Jun 18 06:34:34 2008 +0300
description:
Added mailbox_search_result_alloc() for building search results manually.

diffstat:

2 files changed, 23 insertions(+), 8 deletions(-)
src/lib-storage/mailbox-search-result-private.h |    4 +++
src/lib-storage/mailbox-search-result.c         |   27 ++++++++++++++++-------

diffs (68 lines):

diff -r 053d1aa325f6 -r 9e4be86d4b7d src/lib-storage/mailbox-search-result-private.h
--- a/src/lib-storage/mailbox-search-result-private.h	Wed Jun 18 06:33:08 2008 +0300
+++ b/src/lib-storage/mailbox-search-result-private.h	Wed Jun 18 06:34:34 2008 +0300
@@ -19,6 +19,10 @@ struct mail_search_result {
 	unsigned int args_have_modseq:1;
 };
 
+struct mail_search_result *
+mailbox_search_result_alloc(struct mailbox *box, struct mail_search_args *args,
+			    enum mailbox_search_result_flags flags);
+
 /* called when initial search is done. */
 void mailbox_search_results_initial_done(struct mail_search_context *ctx);
 
diff -r 053d1aa325f6 -r 9e4be86d4b7d src/lib-storage/mailbox-search-result.c
--- a/src/lib-storage/mailbox-search-result.c	Wed Jun 18 06:33:08 2008 +0300
+++ b/src/lib-storage/mailbox-search-result.c	Wed Jun 18 06:34:34 2008 +0300
@@ -33,24 +33,23 @@ mailbox_search_result_analyze_args(struc
 }
 
 struct mail_search_result *
-mailbox_search_result_save(struct mail_search_context *ctx,
-			   enum mailbox_search_result_flags flags)
+mailbox_search_result_alloc(struct mailbox *box, struct mail_search_args *args,
+			    enum mailbox_search_result_flags flags)
 {
 	struct mail_search_result *result;
 
 	result = i_new(struct mail_search_result, 1);
-	result->box = ctx->transaction->box;
+	result->box = box;
 	result->flags = flags;
 	i_array_init(&result->uids, 32);
 	i_array_init(&result->never_uids, 128);
 
 	if ((result->flags & MAILBOX_SEARCH_RESULT_FLAG_UPDATE) != 0) {
-		result->search_args = ctx->args;
+		result->search_args = args;
 		mail_search_args_ref(result->search_args);
-		mailbox_search_result_analyze_args(result, ctx->args->args);
-	}
-
-	array_append(&ctx->results, &result, 1);
+		mailbox_search_result_analyze_args(result, args->args);
+	}
+
 	array_append(&result->box->search_results, &result, 1);
 	return result;
 }
@@ -84,6 +83,18 @@ void mailbox_search_result_free(struct m
 	i_free(result);
 }
 
+struct mail_search_result *
+mailbox_search_result_save(struct mail_search_context *ctx,
+			   enum mailbox_search_result_flags flags)
+{
+	struct mail_search_result *result;
+
+	result = mailbox_search_result_alloc(ctx->transaction->box,
+					     ctx->args, flags);
+	array_append(&ctx->results, &result, 1);
+	return result;
+}
+
 static void
 mailbox_search_result_initial_done(struct mail_search_result *result)
 {


More information about the dovecot-cvs mailing list