commit b9fb73c: [Fix] Fix merge table utility

Vsevolod Stakhov vsevolod at rspamd.com
Mon Aug 7 13:56:03 UTC 2023


Author: Vsevolod Stakhov
Date: 2023-08-07 14:42:30 +0100
URL: https://github.com/rspamd/rspamd/commit/b9fb73ce0ba993c9873cf0022be7bb68766c8d83

[Fix] Fix merge table utility

---
 lualib/lua_util.lua | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/lualib/lua_util.lua b/lualib/lua_util.lua
index a68da0d59..6964b0f00 100644
--- a/lualib/lua_util.lua
+++ b/lualib/lua_util.lua
@@ -627,10 +627,23 @@ exports.table_cmp = table_cmp
 -- Merge two tables
 --]]
 local function table_merge(t1, t2)
+  local res = {}
+  local nidx = 1 -- for numeric indicies
+  local it_func = function(k, v)
+    if type(k) == 'number' then
+      res[nidx] = v
+      nidx = nidx + 1
+    else
+      res[k] = v
+    end
+  end
+  for k, v in pairs(t1) do
+    it_func(k, v)
+  end
   for k, v in pairs(t2) do
-    t1[k] = v
+    it_func(k, v)
   end
-  return t1
+  return res
 end
 
 exports.table_merge = table_merge


More information about the Commits mailing list