aboutsummaryrefslogtreecommitdiffstats
path: root/src/lua/lua_regexp.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lua/lua_regexp.c')
-rw-r--r--src/lua/lua_regexp.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/lua/lua_regexp.c b/src/lua/lua_regexp.c
index 64312be70..d363ee4a6 100644
--- a/src/lua/lua_regexp.c
+++ b/src/lua/lua_regexp.c
@@ -141,10 +141,13 @@ lua_regexp_get_cached (lua_State *L)
{
struct rspamd_lua_regexp *new, **pnew;
const gchar *line;
+ rspamd_regexp_t *re;
line = luaL_checkstring (L, 1);
- new = rspamd_regexp_cache_query (NULL, line, NULL);
- if (new) {
+ re = rspamd_regexp_cache_query (NULL, line, NULL);
+ if (re) {
+ new = g_slice_alloc (sizeof (struct rspamd_lua_regexp));
+ new->re = re;
pnew = lua_newuserdata (L, sizeof (struct rspamd_lua_regexp *));
rspamd_lua_setclass (L, "rspamd{regexp}", -1);
*pnew = new;
@@ -176,11 +179,15 @@ lua_regexp_create_cached (lua_State *L)
{
const gchar *line;
struct rspamd_lua_regexp *new, **pnew;
+ rspamd_regexp_t *re;
line = luaL_checkstring (L, 1);
- new = rspamd_regexp_cache_query (NULL, line, NULL);
- if (new) {
+ re = rspamd_regexp_cache_query (NULL, line, NULL);
+ if (re) {
+ new = g_slice_alloc (sizeof (struct rspamd_lua_regexp));
+ new->re = re;
pnew = lua_newuserdata (L, sizeof (struct rspamd_lua_regexp *));
+
rspamd_lua_setclass (L, "rspamd{regexp}", -1);
*pnew = new;
}