Fix memory leak in Overlay.wrap. (#145744)

This commit is contained in:
Kostia Sokolovskyi 2024-03-26 20:21:21 +01:00 committed by GitHub
parent 158328921d
commit 8953ba658f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 8 additions and 8 deletions

View file

@ -863,6 +863,12 @@ class _WrappingOverlayState extends State<_WrappingOverlay> {
_entry.markNeedsBuild();
}
@override
void dispose() {
_entry..remove()..dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Overlay(

View file

@ -1550,10 +1550,7 @@ void main() {
});
});
testWidgets('Overlay.wrap',
// TODO(ksokolovskyi): dispose OverlayEntry, https://github.com/flutter/flutter/issues/145687 [leaks-to-clean]
experimentalLeakTesting: LeakTesting.settings.withIgnoredAll(),
(WidgetTester tester) async {
testWidgets('Overlay.wrap', (WidgetTester tester) async {
await tester.pumpWidget(
Directionality(
textDirection: TextDirection.ltr,
@ -1585,10 +1582,7 @@ void main() {
expect(tester.state(find.byType(Overlay)), same(overlayState));
});
testWidgets('Overlay.wrap is sized by child in an unconstrained environment',
// TODO(ksokolovskyi): dispose OverlayEntry, https://github.com/flutter/flutter/issues/145687 [leaks-to-clean]
experimentalLeakTesting: LeakTesting.settings.withIgnoredAll(),
(WidgetTester tester) async {
testWidgets('Overlay.wrap is sized by child in an unconstrained environment', (WidgetTester tester) async {
await tester.pumpWidget(
Directionality(
textDirection: TextDirection.ltr,