fix: clear WotLKDB globals on cached loads to remove lingering taint
docs: add v1.4.4r2 changelog
This commit is contained in:
@@ -1,5 +1,9 @@
|
||||
# Changelog
|
||||
|
||||
## v1.4.4r2 — Cached Load Taint Fix
|
||||
|
||||
- **[Taint Fix]** Resolved lingering `ADDON_ACTION_BLOCKED` taint on `ActionButton` and `StaticPopup` that occurred when Questie loaded data from its cache rather than manually recompiling. The `_G` namespace cleanup for `Questie-X-WotLKDB` globals now runs accurately during cached loads (via `UpdateWotLKDBStats`), ensuring the taint vector is closed and additionally freeing ~20MB of redundant cached memory.
|
||||
|
||||
## v1.4.4r1 — WotLKDB Global Namespace Taint Fix
|
||||
|
||||
- **[Taint Fix]** Resolved `ADDON_ACTION_BLOCKED` errors caused by `Questie-X-WotLKDB` leaving tainted global variables in `_G` after initialization. `QuestieInit._pullGlobal` now sets `_G[globalName] = nil` immediately after copying each WotLKDB table reference into `QuestieDB`, removing the taint vector while keeping all data fully accessible through `QuestieDB`.
|
||||
|
||||
@@ -476,6 +476,15 @@ function QuestieInit:UpdateWotLKDBStats()
|
||||
wotlkPlugin.stats.ITEM = counts.ITEM
|
||||
end
|
||||
end
|
||||
|
||||
-- Fix #11: When the database is already compiled (cached), LoadBaseDB is never
|
||||
-- run, so the global cleanup there is skipped. We MUST clean the namespace here
|
||||
-- to prevent continuous ADDON_ACTION_BLOCKED taint errors during gameplay.
|
||||
-- (Doing this also frees ~20MB of redundant RAM since the data is cached!)
|
||||
_G["QuestieX_WotLKDB_quest"] = nil
|
||||
_G["QuestieX_WotLKDB_npc"] = nil
|
||||
_G["QuestieX_WotLKDB_object"] = nil
|
||||
_G["QuestieX_WotLKDB_item"] = nil
|
||||
end
|
||||
|
||||
function QuestieInit:LoadBaseDB()
|
||||
|
||||
@@ -348,6 +348,13 @@
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<h2 id="v144r2">v1.4.4r2 — Cached Load Taint Fix</h2>
|
||||
<ul>
|
||||
<li><strong>[Taint Fix]</strong> Resolved lingering <code>ADDON_ACTION_BLOCKED</code> taint on <code>ActionButton</code> and <code>StaticPopup</code> that occurred when Questie loaded data from its cache rather than manually recompiling. The <code>_G</code> namespace cleanup for <code>Questie-X-WotLKDB</code> globals now runs accurately during cached loads (via <code>UpdateWotLKDBStats</code>), ensuring the taint vector is closed and additionally freeing ~20MB of redundant cached memory.</li>
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
|
||||
<h2 id="v144r1">v1.4.4r1 — WotLKDB Global Namespace Taint Fix</h2>
|
||||
<ul>
|
||||
<li><strong>[Taint Fix]</strong> Resolved <code>ADDON_ACTION_BLOCKED</code> errors caused by <code>Questie-X-WotLKDB</code> leaving tainted global variables in <code>_G</code> after initialization. <code>QuestieInit._pullGlobal</code> now sets <code>_G[globalName] = nil</code> immediately after copying each WotLKDB table reference into <code>QuestieDB</code>, removing the taint vector while keeping all data fully accessible through <code>QuestieDB</code>. <code>QuestieLearner</code> real-time updates are unaffected — they write exclusively to <code>QuestieDB.*Overrides</code> and <code>learnedData</code>.</li>
|
||||
|
||||
Reference in New Issue
Block a user