From 538cc926da9ca3bae917a71600f0db29185dccf8 Mon Sep 17 00:00:00 2001 From: mertalev <101130780+mertalev@users.noreply.github.com> Date: Fri, 23 Jan 2026 14:50:27 -0500 Subject: [PATCH] tighten dispose --- .../infrastructure/loaders/image_request.dart | 28 +++++++++++++++---- 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/mobile/lib/infrastructure/loaders/image_request.dart b/mobile/lib/infrastructure/loaders/image_request.dart index 901e8be48a..b0f641431b 100644 --- a/mobile/lib/infrastructure/loaders/image_request.dart +++ b/mobile/lib/infrastructure/loaders/image_request.dart @@ -61,13 +61,21 @@ abstract class ImageRequest { } final codec = await descriptor.instantiateCodec(); + buffer.dispose(); + descriptor.dispose(); if (_isCancelled) { - buffer.dispose(); - descriptor.dispose(); codec.dispose(); return null; } - return await codec.getNextFrame(); + + final frame = await codec.getNextFrame(); + codec.dispose(); + if (_isCancelled) { + frame.image.dispose(); + return null; + } + + return frame; } Future _fromDecodedPlatformImage(int address, int width, int height, int rowBytes) async { @@ -98,13 +106,21 @@ abstract class ImageRequest { pixelFormat: ui.PixelFormat.rgba8888, ); final codec = await descriptor.instantiateCodec(); + + buffer.dispose(); + descriptor.dispose(); if (_isCancelled) { - buffer.dispose(); - descriptor.dispose(); codec.dispose(); return null; } - return await codec.getNextFrame(); + final frame = await codec.getNextFrame(); + codec.dispose(); + if (_isCancelled) { + frame.image.dispose(); + return null; + } + + return frame; } }