From b5e42c18d2d245fc9ef063e11e3755adea185ace Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Thu, 28 May 2015 09:15:52 +0100 Subject: [PATCH] Assign parent weight and avg_time on load. --- src/libserver/symbols_cache.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/libserver/symbols_cache.c b/src/libserver/symbols_cache.c index bde412461..2c62cd6be 100644 --- a/src/libserver/symbols_cache.c +++ b/src/libserver/symbols_cache.c @@ -243,6 +243,21 @@ rspamd_symbols_cache_load_items (struct symbols_cache *cache, const gchar *name) } } + if (item->type == SYMBOL_TYPE_VIRTUAL && item->parent != -1) { + g_assert (item->parent < cache->items_by_order->len); + parent = g_ptr_array_index (cache->items_by_order, item->parent); + + if (parent->weight < item->weight) { + parent->weight = item->weight; + } + + /* + * We maintain avg_time for virtual symbols equal to the + * parent item avg_time + */ + parent->avg_time = item->avg_time; + } + ucl_object_iterate_free (it); ucl_object_unref (top); -- 2.39.5