]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Improve the default sort function in deep_sort function
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 13 Nov 2020 16:52:20 +0000 (16:52 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 13 Nov 2020 16:52:20 +0000 (16:52 +0000)
lualib/lua_util.lua

index c4448117cce6ee8695b19d348c15b056d5a83b0c..dadf3f3ded36ed6b0cf163aaf03c4889c22fa1c8 100644 (file)
@@ -1012,10 +1012,18 @@ exports.deepcopy = deepcopy
 -- }
 -- Performs recursive in-place sort of a table
 --]]
+local function default_sort_cmp(e1, e2)
+  if type(e1) == type(e2) then
+    return e1 < e2
+  else
+    return type(e1) < type(e2)
+  end
+end
+
 local function deepsort(tbl, sort_func)
   local orig_type = type(tbl)
   if orig_type == 'table' then
-    table.sort(tbl, sort_func)
+    table.sort(tbl, sort_func or default_sort_cmp)
     for _, orig_value in next, tbl, nil do
       deepsort(orig_value)
     end