Description
Two resource leaks in different packages:
-
core/console.ts: hide() does not call stopAutoScroll(). If auto-scroll was started via text selection drag, the 50ms interval continues firing markNeedsRerender() and mutating scroll state even while the console is hidden.
-
three/ExplodingSpriteEffect.ts: static baseMaterialCache is a Map that caches GPU materials but is never cleared. ExplosionManager.disposeAll() disposes all active explosions but leaves the cached materials in GPU memory.
Steps to reproduce
- Open the console, start a text selection drag to the edge (activates auto-scroll), hide the console — the interval keeps firing
- Create and dispose multiple
ExplodingSpriteEffect instances with different textures — GPU memory grows unboundedly
Description
Two resource leaks in different packages:
core/console.ts:
hide()does not callstopAutoScroll(). If auto-scroll was started via text selection drag, the 50ms interval continues firingmarkNeedsRerender()and mutating scroll state even while the console is hidden.three/ExplodingSpriteEffect.ts:
static baseMaterialCacheis a Map that caches GPU materials but is never cleared.ExplosionManager.disposeAll()disposes all active explosions but leaves the cached materials in GPU memory.Steps to reproduce
ExplodingSpriteEffectinstances with different textures — GPU memory grows unboundedly