]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-settings: Use event_filter_create_with_pool() for created filters
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Tue, 23 May 2023 08:44:57 +0000 (11:44 +0300)
committerTimo Sirainen <timo.sirainen@open-xchange.com>
Mon, 20 Nov 2023 12:22:31 +0000 (14:22 +0200)
This way there is no wasted memory with each filter creating their own pool
and using only part of it.

src/lib-settings/settings.c

index 438261f3cffb82bfd12833f845b6e1bcca8da96a..a49690e3a438713c7ecf84352fd7323f7c0e0ab3 100644 (file)
@@ -189,7 +189,8 @@ settings_read_filters(struct settings_mmap *mmap, uoff_t *offset,
                if (filter_string[0] == '\0')
                        continue;
 
-               mmap->event_filters[i] = event_filter_create();
+               mmap->event_filters[i] = event_filter_create_with_pool(mmap->pool);
+               pool_ref(mmap->pool);
                if (event_filter_parse_case_sensitive(filter_string,
                                mmap->event_filters[i], &error) < 0) {
                        *error_r = t_strdup_printf(
@@ -1234,7 +1235,8 @@ settings_override_get_filter(struct settings_override *set, pool_t pool,
        if (filter == NULL)
                return;
 
-       set->filter = event_filter_create();
+       set->filter = event_filter_create_with_pool(pool);
+       pool_ref(pool);
        if (event_filter_parse_case_sensitive(str_c(filter), set->filter,
                                              &error) < 0) {
                i_panic("BUG: Failed to create event filter filter for %s: %s",