summaryrefslogtreecommitdiffstats
path: root/src/lua/lua_common.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2019-09-27 13:32:42 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2019-09-27 13:32:42 +0100
commit82637e89647924b395c4d4cdfc835ceebbd0b661 (patch)
treecbb2d71b9a16095b642bca1d6b3e27677b39aaa0 /src/lua/lua_common.c
parentf2e9665d05f6e81603ef0e10dfbc161151357468 (diff)
downloadrspamd-82637e89647924b395c4d4cdfc835ceebbd0b661.tar.gz
rspamd-82637e89647924b395c4d4cdfc835ceebbd0b661.zip
[Rework] Rework initialisation to reduce static leaks count
Diffstat (limited to 'src/lua/lua_common.c')
-rw-r--r--src/lua/lua_common.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/lua/lua_common.c b/src/lua/lua_common.c
index bfd572532..bbcec4c1c 100644
--- a/src/lua/lua_common.c
+++ b/src/lua/lua_common.c
@@ -64,6 +64,16 @@ lua_error_quark (void)
KHASH_INIT (lua_class_set, const gchar *, bool, 0, rspamd_str_hash, rspamd_str_equal);
khash_t (lua_class_set) *lua_classes = NULL;
+RSPAMD_CONSTRUCTOR (lua_classes_ctor)
+{
+ lua_classes = kh_init (lua_class_set);
+}
+
+RSPAMD_DESTRUCTOR (lua_classes_dtor)
+{
+ kh_destroy (lua_class_set, lua_classes);
+}
+
/* Util functions */
/**
* Create new class and store metatable on top of the stack (must be popped if not needed)
@@ -80,10 +90,6 @@ rspamd_lua_new_class (lua_State * L,
khiter_t k;
gint r, nmethods = 0;
- if (lua_classes == NULL) {
- lua_classes = kh_init (lua_class_set);
- }
-
k = kh_put (lua_class_set, lua_classes, classname, &r);
class_ptr = RSPAMD_LIGHTUSERDATA_MASK (kh_key (lua_classes, k));