an in-flight TextureLoader.load callback still textureCache.sets and addIconMeshes onto the torn-down group; those textures are never disposed
Suggested fix: this.btnMeshes = []; this.keyTexts = []; this.onButtonClick = null; in dispose, and guard the load callback with a disposed flag (or compare textureCache membership after a clear).
Found while adding Wave 8 leftover coverage for `toolbar-hud.ts`.
`dispose()` releases the texture cache and `clearGroup()`s, but does **not** null `btnMeshes` / `keyTexts` (CompletionHUD and HintHUD do clear their hit targets).
After dispose:
- `handleClick` still AABB-hits the disposed button meshes and invokes `onButtonClick` (score/minimap/settings/etc. can toggle after teardown)
- `setHotkeys` writes `.text` / `.sync()` onto disposed troika Texts
- an in-flight `TextureLoader.load` callback still `textureCache.set`s and `addIconMesh`es onto the torn-down group; those textures are never disposed
Suggested fix: `this.btnMeshes = []; this.keyTexts = []; this.onButtonClick = null;` in `dispose`, and guard the load callback with a disposed flag (or compare `textureCache` membership after a clear).
Resolved in spikersoft-angular PR #819 (merged to master). ToolbarHUD.dispose clears btnMeshes so stale clicks cannot fire. Closing.
Resolved in spikersoft-angular [PR #819](https://git.spikersoft.com/spikerj/spikersoft-angular/pulls/819) (merged to `master`). ToolbarHUD.dispose clears btnMeshes so stale clicks cannot fire. Closing.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Found while adding Wave 8 leftover coverage for
toolbar-hud.ts.dispose()releases the texture cache andclearGroup()s, but does not nullbtnMeshes/keyTexts(CompletionHUD and HintHUD do clear their hit targets).After dispose:
handleClickstill AABB-hits the disposed button meshes and invokesonButtonClick(score/minimap/settings/etc. can toggle after teardown)setHotkeyswrites.text/.sync()onto disposed troika TextsTextureLoader.loadcallback stilltextureCache.sets andaddIconMeshes onto the torn-down group; those textures are never disposedSuggested fix:
this.btnMeshes = []; this.keyTexts = []; this.onButtonClick = null;indispose, and guard the load callback with a disposed flag (or comparetextureCachemembership after a clear).Resolved in spikersoft-angular PR #819 (merged to
master). ToolbarHUD.dispose clears btnMeshes so stale clicks cannot fire. Closing.