File Details
100
- R
- May 2, 2026
- 289.07 KB
- 49
- 12.0.5
- Retail
File Name
BazCore-100.zip
Supported Versions
- 12.0.5
BazCore
100 (2026-05-02)
Full Changelog Previous Releases
- CPULog: harden /bazcpu top against crashes when the addon namespace contains Blizzard UI frames. Calling /bazcpu top BazWidgetDrawers crashed the client - the BWD addon table holds references to drawer / widget Frames (frame:GetObjectType, frame:SetPoint, etc.), and the recursive walker happily descended into those frame method tables. Two failure modes there: (1) the method tables expose huge internal Blizzard surfaces that explode the walk size, and (2) calling GetFunctionCPUUsage on certain C-backed frame methods has been reported to hard-crash WoW. Five guards added: (1) IsBlizzardFrame() detects frames via metatable.__index.GetObjectType (or GetObjectType directly on the table) and the walk skips them entirely. (2) ShouldSkipKey() blacklists "core", "config", "db", "VERSION" - back-references to BazCore / SV proxies / version strings that aren't useful to walk. (3) pairs() wrapped in pcall via safePairs() so a custom __pairs that errors won't kill the walk. (4) GetFunctionCPUUsage wrapped in pcall via safeCPU() so a single bad function ref returns 0 instead of crashing. (5) maxFunctions cap (default 2000) so a pathological namespace can't fill memory unbounded - the walker returns early once the cap hits, dumping whatever it found so far. Also dropped maxDepth from 4 to 3 (conservative - 4 was reaching deep into module trees that don't usefully exist past 3 levels). After /reload, /bazcpu top BazWidgetDrawers should return the top consumers without crashing, bump to 100