]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib: events: Replace ->registered with ->internal
authorJosef 'Jeff' Sipek <jeff.sipek@open-xchange.com>
Tue, 22 Oct 2019 18:19:10 +0000 (14:19 -0400)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Fri, 22 Nov 2019 10:44:16 +0000 (12:44 +0200)
This is in preparation for maintaining an internal category state structure.

src/lib/event-filter.c
src/lib/lib-event.c
src/lib/lib-event.h

index ac522f8cab4ecbd2d0150064362a2f3ba72ef41c..22fdf09946d64f25453a79665a073828c61eb063 100644 (file)
@@ -669,7 +669,7 @@ static void event_filter_category_registered(struct event_category *category)
        struct event_filter *filter;
 
        for (filter = event_filters; filter != NULL; filter = filter->next) {
-               if (!category->registered)
+               if (category->internal == NULL)
                        event_filter_remove_category(filter, category);
                else
                        event_filter_add_missing_category(filter, category);
index 218def6cdc426ba8a96415bd64e05bbb93908754..a8b1906c845ef9373a2604d6290e2ae709b4c3d5 100644 (file)
@@ -577,7 +577,7 @@ static void event_category_register(struct event_category *category)
 {
        event_category_callback_t *const *callbackp;
 
-       if (category->registered)
+       if (category->internal != NULL)
                return;
 
        /* register parent categories first */
@@ -587,7 +587,7 @@ static void event_category_register(struct event_category *category)
        /* Don't allow duplicate category structs with the same name.
           Event filtering uses pointer comparisons for efficiency. */
        i_assert(event_category_find_registered(category->name) == NULL);
-       category->registered = TRUE;
+       category->internal = i_malloc(1);
        array_push_back(&event_registered_categories, &category);
 
        array_foreach(&event_category_callbacks, callbackp) T_BEGIN {
index 6bb86d0e4f91adea37eaf4231e08ecab795f2260..12e4083eaf040e80e6ebb7b5e8babb8c0bdb2800 100644 (file)
@@ -14,8 +14,11 @@ struct event_category {
        struct event_category *parent;
        const char *name;
 
-       /* TRUE if this category has been registered with event_add_categories() */
-       bool registered;
+       /* non-NULL if this category has been registered
+
+          Do NOT dereference outside of event code in src/lib.  It is safe
+          to check for NULL/non-NULL anywhere. */
+       void *internal;
 };
 
 enum event_field_value_type {