commit 3e2508b: [Minor] Hide complex function

Vsevolod Stakhov vsevolod at rspamd.com
Mon Aug 8 20:49:03 UTC 2022


Author: Vsevolod Stakhov
Date: 2022-08-08 21:43:08 +0100
URL: https://github.com/rspamd/rspamd/commit/3e2508b08f865d9da9cc23a28a76a916ebe0d7e3 (HEAD -> master)

[Minor] Hide complex function

---
 src/libserver/symcache/symcache_item.cxx | 25 +++++++++++++++++++++++++
 src/libserver/symcache/symcache_item.hxx | 24 +-----------------------
 2 files changed, 26 insertions(+), 23 deletions(-)

diff --git a/src/libserver/symcache/symcache_item.cxx b/src/libserver/symcache/symcache_item.cxx
index 7e44706dd..5f37de8a7 100644
--- a/src/libserver/symcache/symcache_item.cxx
+++ b/src/libserver/symcache/symcache_item.cxx
@@ -267,6 +267,31 @@ auto cache_item::update_counters_check_peak(lua_State *L,
 	return ret;
 }
 
+auto cache_item::inc_frequency(const char *sym_name, symcache &cache) -> void
+{
+	if (sym_name && symbol != sym_name) {
+		if (is_filter()) {
+			/* Likely a callback symbol with some virtual symbol that needs to be adjusted */
+			for (const auto &cld: get_children().value().get()) {
+				if (cld->get_name() == sym_name) {
+					cld->inc_frequency(sym_name, cache);
+				}
+			}
+		}
+		else {
+			/* Name not equal to symbol name, so we need to find the proper name */
+			auto *another_item = cache.get_item_by_name_mut(sym_name, false);
+			if (another_item != nullptr) {
+				another_item->inc_frequency(sym_name, cache);
+			}
+		}
+	}
+	else {
+		/* Symbol and sym name are the same */
+		g_atomic_int_inc(&st->hits);
+	}
+}
+
 auto cache_item::get_type_str() const -> const char *
 {
 	switch (type) {
diff --git a/src/libserver/symcache/symcache_item.hxx b/src/libserver/symcache/symcache_item.hxx
index 594e4bddf..435a19abf 100644
--- a/src/libserver/symcache/symcache_item.hxx
+++ b/src/libserver/symcache/symcache_item.hxx
@@ -343,29 +343,7 @@ public:
 	/**
 	 * Increase frequency for a symbol
 	 */
-	auto inc_frequency(const char *sym_name, symcache &cache) -> void {
-		if (sym_name && symbol != sym_name) {
-			if (is_filter()) {
-				/* Likely a callback symbol with some virtual symbol that needs to be adjusted */
-				for (const auto &cld: get_children().value().get()) {
-					if (cld->get_name() == sym_name) {
-						cld->inc_frequency(sym_name, cache);
-					}
-				}
-			}
-			else {
-				/* Name not equal to symbol name, so we need to find the proper name */
-				auto *another_item = cache.get_item_by_name_mut(sym_name, false);
-				if (another_item != nullptr) {
-					another_item->inc_frequency(sym_name, cache);
-				}
-			}
-		}
-		else {
-			/* Symbol and sym name are the same */
-			g_atomic_int_inc(&st->hits);
-		}
-	}
+	auto inc_frequency(const char *sym_name, symcache &cache) -> void;
 
 	/**
 	 * Check if an item is allowed to be executed not checking item conditions


More information about the Commits mailing list