Skip to content

Commit 4e0e715

Browse files
committed
Update libs
1 parent 2a984dc commit 4e0e715

File tree

1 file changed

+23
-3
lines changed

1 file changed

+23
-3
lines changed

Libs/AceDB-3.0/AceDB-3.0.lua

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@
4040
-- end
4141
-- @class file
4242
-- @name AceDB-3.0.lua
43-
-- @release $Id: AceDB-3.0.lua 1353 2024-08-27 13:37:35Z nevcairiel $
44-
local ACEDB_MAJOR, ACEDB_MINOR = "AceDB-3.0", 30
43+
-- @release $Id: AceDB-3.0.lua 1364 2025-07-05 16:01:08Z nevcairiel $
44+
local ACEDB_MAJOR, ACEDB_MINOR = "AceDB-3.0", 33
4545
local AceDB = LibStub:NewLibrary(ACEDB_MAJOR, ACEDB_MINOR)
4646

4747
if not AceDB then return end -- No upgrade needed
@@ -360,7 +360,7 @@ local function logoutHandler(frame, event)
360360

361361
-- cleanup sections that are empty without defaults
362362
local sv = rawget(db, "sv")
363-
for section in pairs(db.keys) do
363+
for section in pairs(rawget(db, "keys")) do
364364
if rawget(sv, section) then
365365
-- global is special, all other sections have sub-entrys
366366
-- also don't delete empty profiles on main dbs, only on namespaces
@@ -377,6 +377,26 @@ local function logoutHandler(frame, event)
377377
end
378378
end
379379
end
380+
381+
-- second pass after everything else is cleaned up to remove empty namespaces
382+
-- can't be run in-loop above since there is no guaranteed order
383+
for db in pairs(AceDB.db_registry) do
384+
local sv = rawget(db, "sv")
385+
local namespaces = rawget(sv, "namespaces")
386+
if namespaces then
387+
for name in pairs(namespaces) do
388+
-- cleanout empty profiles table, if still present
389+
if namespaces[name].profiles and not next(namespaces[name].profiles) then
390+
namespaces[name].profiles = nil
391+
end
392+
393+
-- remove entire namespace, if needed
394+
if not next(namespaces[name]) then
395+
namespaces[name] = nil
396+
end
397+
end
398+
end
399+
end
380400
end
381401
end
382402

0 commit comments

Comments
 (0)