This is in preparation for maintaining an internal category state structure.
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);
{
event_category_callback_t *const *callbackp;
- if (category->registered)
+ if (category->internal != NULL)
return;
/* register parent categories first */
/* 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 {
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 {