diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2019-09-27 13:32:42 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2019-09-27 13:32:42 +0100 |
commit | 82637e89647924b395c4d4cdfc835ceebbd0b661 (patch) | |
tree | cbb2d71b9a16095b642bca1d6b3e27677b39aaa0 /src/lua/lua_common.c | |
parent | f2e9665d05f6e81603ef0e10dfbc161151357468 (diff) | |
download | rspamd-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.c | 14 |
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)); |