From 22f603e83dd4fe3fc6d3e9e18b19bc87d57af235 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Mon, 9 May 2022 21:25:23 +0100 Subject: [Rework] Use dynamic items for calling callbacks It is trivial to get a static item by dynamic item by just subtracting pointers. So there is no need in other complications. --- src/libserver/symcache/symcache_item.hxx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/libserver/symcache/symcache_item.hxx') diff --git a/src/libserver/symcache/symcache_item.hxx b/src/libserver/symcache/symcache_item.hxx index 89c00ded5..40e2d67c1 100644 --- a/src/libserver/symcache/symcache_item.hxx +++ b/src/libserver/symcache/symcache_item.hxx @@ -31,6 +31,7 @@ #include "symcache_id_list.hxx" #include "contrib/expected/expected.hpp" #include "contrib/libev/ev.h" +#include "symcache_runtime.hxx" namespace rspamd::symcache { @@ -119,7 +120,7 @@ public: conditions.emplace_back(L, cbref); } - auto call(struct rspamd_task *task, struct rspamd_symcache_item *item) const -> void + auto call(struct rspamd_task *task, struct rspamd_symcache_dynamic_item *item) const -> void { func(task, item, user_data); } @@ -369,11 +370,11 @@ public: return false; } - auto call(struct rspamd_task *task) const -> void { + auto call(struct rspamd_task *task, cache_dynamic_item *dyn_item) const -> void { if (std::holds_alternative(specific)) { const auto &filter_data = std::get(specific); - filter_data.call(task, (struct rspamd_symcache_item *)this); + filter_data.call(task, (struct rspamd_symcache_dynamic_item *)dyn_item); } } -- cgit v1.2.3