From: Vsevolod Stakhov Date: Fri, 18 May 2018 13:01:19 +0000 (+0100) Subject: [Minor] Remove missing dependencies from runtime checks X-Git-Tag: 1.7.5~1 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=103392620e2efc098bedeaac5438506a3036d9cf;p=rspamd.git [Minor] Remove missing dependencies from runtime checks --- diff --git a/src/libserver/symbols_cache.c b/src/libserver/symbols_cache.c index eac6c8d0c..abed26fc3 100644 --- a/src/libserver/symbols_cache.c +++ b/src/libserver/symbols_cache.c @@ -415,7 +415,7 @@ rspamd_symbols_cache_post_init (struct symbols_cache *cache) struct delayed_cache_dependency *ddep; struct delayed_cache_condition *dcond; GList *cur; - guint i, j; + gint i, j; gint id; rspamd_symbols_cache_resort (cache); @@ -506,6 +506,16 @@ rspamd_symbols_cache_post_init (struct symbols_cache *cache) msg_err_cache ("cannot find dependency on symbol %s", dep->sym); } } + + /* Reversed loop to make removal safe */ + for (j = it->deps->len - 1; j >= 0; j --) { + dep = g_ptr_array_index (it->deps, j); + + if (dep->item == NULL) { + /* Remove useless dep */ + g_ptr_array_remove_index (it->deps, j); + } + } } g_ptr_array_sort_with_data (cache->prefilters, prefilters_cmp, cache);