dovecot-2.0: mail_search_args_simplify() no longer uses lib-inde...

dovecot at dovecot.org dovecot at dovecot.org
Fri Jun 5 03:20:54 EEST 2009


details:   http://hg.dovecot.org/dovecot-2.0/rev/63f4a2825bbe
changeset: 9456:63f4a2825bbe
user:      Timo Sirainen <tss at iki.fi>
date:      Thu Jun 04 20:14:52 2009 -0400
description:
mail_search_args_simplify() no longer uses lib-index functions directly.

diffstat:

1 file changed, 13 insertions(+), 11 deletions(-)
src/lib-storage/mail-search.c |   24 +++++++++++++-----------

diffs (77 lines):

diff -r 374d29a1905e -r 63f4a2825bbe src/lib-storage/mail-search.c
--- a/src/lib-storage/mail-search.c	Thu Jun 04 20:13:40 2009 -0400
+++ b/src/lib-storage/mail-search.c	Thu Jun 04 20:14:52 2009 -0400
@@ -508,7 +508,8 @@ mail_search_args_analyze(struct mail_sea
 }
 
 static struct mail_keywords *
-mail_search_keywords_merge(struct mail_keywords **_kw1,
+mail_search_keywords_merge(struct mailbox *box,
+			   struct mail_keywords **_kw1,
 			   struct mail_keywords **_kw2)
 {
 	struct mail_keywords *kw1 = *_kw1, *kw2 = *_kw2;
@@ -530,16 +531,17 @@ mail_search_keywords_merge(struct mail_k
 			if (j == kw1->count)
 				array_append(&new_indexes, kw2->idx+i, 1);
 		}
-		new_kw = mail_index_keywords_create_from_indexes(kw1->index,
-								 &new_indexes);
+		new_kw = mailbox_keywords_create_from_indexes(box,
+							      &new_indexes);
 	} T_END;
-	mail_index_keywords_free(_kw1);
-	mail_index_keywords_free(_kw2);
+	mailbox_keywords_free(box, _kw1);
+	mailbox_keywords_free(box, _kw2);
 	return new_kw;
 }
 
 static void
-mail_search_args_simplify_sub(struct mail_search_arg *args, bool parent_and)
+mail_search_args_simplify_sub(struct mailbox *box,
+			      struct mail_search_arg *args, bool parent_and)
 {
 	struct mail_search_arg *sub, *prev = NULL;
 	struct mail_search_arg *prev_flags_arg, *prev_not_flags_arg;
@@ -577,7 +579,7 @@ mail_search_args_simplify_sub(struct mai
 		if (args->type == SEARCH_SUB ||
 		    args->type == SEARCH_OR ||
 		    args->type == SEARCH_INTHREAD) {
-			mail_search_args_simplify_sub(args->value.subargs,
+			mail_search_args_simplify_sub(box, args->value.subargs,
 						      args->type != SEARCH_OR);
 		}
 
@@ -611,7 +613,7 @@ mail_search_args_simplify_sub(struct mai
 				prev_kw_arg = args;
 			else {
 				prev_kw_arg->value.keywords =
-					mail_search_keywords_merge(
+					mail_search_keywords_merge(box,
 						&prev_kw_arg->value.keywords,
 						&args->value.keywords);
 				prev->next = args->next;
@@ -624,7 +626,7 @@ mail_search_args_simplify_sub(struct mai
 				prev_not_kw_arg = args;
 			else {
 				prev_not_kw_arg->value.keywords =
-					mail_search_keywords_merge(
+					mail_search_keywords_merge(box,
 					       &prev_not_kw_arg->value.keywords,
 					       &args->value.keywords);
 				prev->next = args->next;
@@ -708,11 +710,11 @@ void mail_search_args_simplify(struct ma
 {
 	args->simplified = TRUE;
 
-	mail_search_args_simplify_sub(args->args, TRUE);
+	mail_search_args_simplify_sub(args->box, args->args, TRUE);
 	if (mail_search_args_unnest_inthreads(args, &args->args,
 					      FALSE, TRUE)) {
 		/* we may have added some extra SUBs that could be dropped */
-		mail_search_args_simplify_sub(args->args, TRUE);
+		mail_search_args_simplify_sub(args->box, args->args, TRUE);
 	}
 }
 


More information about the dovecot-cvs mailing list