From: Josef 'Jeff' Sipek Date: Wed, 21 Apr 2021 15:19:31 +0000 (-0400) Subject: lib: event filter - Generalize query construction helpers X-Git-Tag: 2.3.16~315 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d8d2f0ea3ce931c44cf69c41a79e271ac9df642d;p=thirdparty%2Fdovecot%2Fcore.git lib: event filter - Generalize query construction helpers If instead of taking the internal query, they take a filter expression node, they can be reused by optimizations in subsequent commits. --- diff --git a/src/lib/event-filter.c b/src/lib/event-filter.c index f04b082200..0c56d115f4 100644 --- a/src/lib/event-filter.c +++ b/src/lib/event-filter.c @@ -194,7 +194,7 @@ static void add_node(pool_t pool, struct event_filter_node **root, static void event_filter_add_categories(pool_t pool, - struct event_filter_query_internal *int_query, + struct event_filter_node **root, const char *const *categories) { unsigned int categories_count = str_array_length(categories); @@ -214,13 +214,13 @@ event_filter_add_categories(pool_t pool, node->category.ptr = event_category_find_registered(categories[i]); } - add_node(pool, &int_query->expr, node); + add_node(pool, root, node); } } static void event_filter_add_fields(pool_t pool, - struct event_filter_query_internal *int_query, + struct event_filter_node **root, const struct event_filter_field *fields) { unsigned int i; @@ -245,7 +245,7 @@ event_filter_add_fields(pool_t pool, node->field.value.intmax = INT_MIN; } - add_node(pool, &int_query->expr, node); + add_node(pool, root, node); } } @@ -283,8 +283,8 @@ void event_filter_add(struct event_filter *filter, add_node(filter->pool, &int_query->expr, node); } - event_filter_add_categories(filter->pool, int_query, query->categories); - event_filter_add_fields(filter->pool, int_query, query->fields); + event_filter_add_categories(filter->pool, &int_query->expr, query->categories); + event_filter_add_fields(filter->pool, &int_query->expr, query->fields); } static struct event_filter_node *