diff --git a/packages/flutter/lib/src/painting/image_cache.dart b/packages/flutter/lib/src/painting/image_cache.dart index 7568b67c8b..5b0c9781ac 100644 --- a/packages/flutter/lib/src/painting/image_cache.dart +++ b/packages/flutter/lib/src/painting/image_cache.dart @@ -188,6 +188,9 @@ class ImageCache { }, ); } + for (final _CachedImage image in _cache.values) { + image.dispose(); + } _cache.clear(); _pendingImages.clear(); _currentSizeBytes = 0; diff --git a/packages/flutter/test/widgets/scroll_aware_image_provider_test.dart b/packages/flutter/test/widgets/scroll_aware_image_provider_test.dart index ce58c553ea..bfcc8d638f 100644 --- a/packages/flutter/test/widgets/scroll_aware_image_provider_test.dart +++ b/packages/flutter/test/widgets/scroll_aware_image_provider_test.dart @@ -34,7 +34,7 @@ void main() { await tester.pumpWidget(TestWidget(key)); final DisposableBuildContext context = DisposableBuildContext(key.currentState!); - final TestImageProvider testImageProvider = TestImageProvider(testImage); + final TestImageProvider testImageProvider = TestImageProvider(testImage.clone()); final ScrollAwareImageProvider imageProvider = ScrollAwareImageProvider( context: context, imageProvider: testImageProvider, @@ -69,7 +69,7 @@ void main() { )); final DisposableBuildContext context = DisposableBuildContext(key.currentState!); - final TestImageProvider testImageProvider = TestImageProvider(testImage); + final TestImageProvider testImageProvider = TestImageProvider(testImage.clone()); final ScrollAwareImageProvider imageProvider = ScrollAwareImageProvider( context: context, imageProvider: testImageProvider, @@ -109,7 +109,7 @@ void main() { )); final DisposableBuildContext context = DisposableBuildContext(keys.last.currentState!); - final TestImageProvider testImageProvider = TestImageProvider(testImage); + final TestImageProvider testImageProvider = TestImageProvider(testImage.clone()); final ScrollAwareImageProvider imageProvider = ScrollAwareImageProvider( context: context, imageProvider: testImageProvider, @@ -166,7 +166,7 @@ void main() { )); final DisposableBuildContext context = DisposableBuildContext(keys.last.currentState!); - final TestImageProvider testImageProvider = TestImageProvider(testImage); + final TestImageProvider testImageProvider = TestImageProvider(testImage.clone()); final ScrollAwareImageProvider imageProvider = ScrollAwareImageProvider( context: context, imageProvider: testImageProvider, @@ -233,7 +233,7 @@ void main() { )); final DisposableBuildContext context = DisposableBuildContext(keys.last.currentState!); - final TestImageProvider testImageProvider = TestImageProvider(testImage); + final TestImageProvider testImageProvider = TestImageProvider(testImage.clone()); final ScrollAwareImageProvider imageProvider = ScrollAwareImageProvider( context: context, imageProvider: testImageProvider, @@ -298,7 +298,7 @@ void main() { )); final DisposableBuildContext context = DisposableBuildContext(key.currentState!); - final TestImageProvider testImageProvider = TestImageProvider(testImage); + final TestImageProvider testImageProvider = TestImageProvider(testImage.clone()); final ScrollAwareImageProvider imageProvider = ScrollAwareImageProvider( context: context, imageProvider: testImageProvider, @@ -349,7 +349,7 @@ void main() { )); final DisposableBuildContext context = DisposableBuildContext(key.currentState!); - final TestImageProvider testImageProvider = TestImageProvider(testImage); + final TestImageProvider testImageProvider = TestImageProvider(testImage.clone()); final ScrollAwareImageProvider imageProvider = ScrollAwareImageProvider( context: context, imageProvider: testImageProvider,