- Normalize the locked flag from GetContainerItemInfo (1/nil) to the
cached 1/0, so `preLocked ~= nowLocked` no longer treats every unlocked
slot as changed. Every cache update was re-running ItemInfo:Get() and
the tooltip scan for every slot.
- When only the locked state changes, record it directly and don't flag
the cache for re-categorization; the window still redraws.
- Update() re-categorizes only when items changed (cacheNeedsCategorize),
not for cosmetic lock changes.
- Build emptyGenericContainerSlots for every empty slot on each update,
since unchanged slots no longer pass through the change branch.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019W3rwt5PZSpEDkXYzRuRhH