- assigned_to: BilgeGates
Originally created by: BilgeGates
Originally owned by: BilgeGates
In pieceImageCache.ts, blob URLs created via URL.createObjectURL() are not revoked in all error paths. If an exception occurs between object URL creation and image assignment, the URL is orphaned and never cleaned up. On repeated piece style changes this accumulates memory — especially visible on mobile.
File: src/shared/utils/pieceImageCache.ts
Blob URLs are revoked on all exit paths — success, error, and exception.
Blob URLs leak when an exception interrupts the load sequence, accumulating memory over time.
URL.revokeObjectURL() is not called in the exception/abort path. A finally block or try/catch around the object URL creation is needed.
Safari on iOS — most likely to hit OOM due to tighter memory limits.