]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Minor] Lua_cdb: Avoid extra copy on lookup
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 19 Oct 2021 16:53:20 +0000 (17:53 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 19 Oct 2021 16:53:20 +0000 (17:53 +0100)
src/lua/lua_cdb.c

index 91f770cb3fea010f305a08a209f9354b2c87a588..37f35d985d386ac1c44c6208861cfd0d41d89304 100644 (file)
@@ -149,9 +149,6 @@ lua_cdb_lookup (lua_State *L)
        struct cdb *cdb = lua_check_cdb (L, 1);
        gsize klen;
        const gchar *what = luaL_checklstring(L, 2, &klen);
-       gchar *value;
-       gsize vlen;
-       gint64 vpos;
 
        if (!cdb || what == NULL) {
                return lua_error (L);
@@ -159,12 +156,7 @@ lua_cdb_lookup (lua_State *L)
 
        if (cdb_find (cdb, what, klen) > 0) {
                /* Extract and push value to lua as string */
-               vpos = cdb_datapos (cdb);
-               vlen = cdb_datalen (cdb);
-               value = g_malloc (vlen);
-               cdb_read (cdb, value, vlen, vpos);
-               lua_pushlstring (L, value, vlen);
-               g_free (value);
+               lua_pushlstring (L, cdb_getdata (cdb), cdb_datalen (cdb));
        }
        else {
                lua_pushnil (L);