dovecot-2.0: lib-storage: Minor optimization to search build ini...
dovecot at dovecot.org
dovecot at dovecot.org
Tue Apr 13 19:02:01 EEST 2010
details: http://hg.dovecot.org/dovecot-2.0/rev/8d1d1eb2c2a0
changeset: 11145:8d1d1eb2c2a0
user: Timo Sirainen <tss at iki.fi>
date: Tue Apr 13 19:01:58 2010 +0300
description:
lib-storage: Minor optimization to search build initialization code.
diffstat:
src/lib-storage/mail-search-register.c | 10 ++++++++--
1 files changed, 8 insertions(+), 2 deletions(-)
diffs (38 lines):
diff -r c6db5769942f -r 8d1d1eb2c2a0 src/lib-storage/mail-search-register.c
--- a/src/lib-storage/mail-search-register.c Tue Apr 13 18:59:23 2010 +0300
+++ b/src/lib-storage/mail-search-register.c Tue Apr 13 19:01:58 2010 +0300
@@ -8,6 +8,8 @@
struct mail_search_register {
ARRAY_DEFINE(args, struct mail_search_register_arg);
mail_search_register_fallback_t *fallback;
+
+ unsigned int args_sorted:1;
};
struct mail_search_register *mail_search_register_init(void)
@@ -41,7 +43,7 @@
unsigned int count)
{
array_append(®->args, arg, count);
- array_sort(®->args, mail_search_register_arg_cmp);
+ reg->args_sorted = FALSE;
}
void mail_search_register_fallback(struct mail_search_register *reg,
@@ -55,6 +57,11 @@
{
struct mail_search_register_arg arg;
+ if (!reg->args_sorted) {
+ array_sort(®->args, mail_search_register_arg_cmp);
+ reg->args_sorted = TRUE;
+ }
+
arg.key = key;
return array_bsearch(®->args, &arg, mail_search_register_arg_cmp);
}
@@ -68,4 +75,3 @@
*fallback_r = reg->fallback;
return TRUE;
}
-
More information about the dovecot-cvs
mailing list