Skip to content

Commit 5d5da38

Browse files
authored
Fix memory leak in _DraggableScrollableSheetState (#134212)
1 parent 834f5dc commit 5d5da38

File tree

3 files changed

+72
-52
lines changed

3 files changed

+72
-52
lines changed

packages/flutter/lib/src/widgets/draggable_scrollable_sheet.dart

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -718,7 +718,11 @@ class _DraggableScrollableSheetState extends State<DraggableScrollableSheet> {
718718

719719
@override
720720
void dispose() {
721-
widget.controller?._detach(disposeExtent: true);
721+
if (widget.controller == null) {
722+
_extent.dispose();
723+
} else {
724+
widget.controller!._detach(disposeExtent: true);
725+
}
722726
_scrollController.dispose();
723727
super.dispose();
724728
}

packages/flutter/test/material/about_test.dart

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1590,12 +1590,7 @@ void main() {
15901590
expect(titleOffset, const Offset(292.0, 136.0));
15911591
expect(titleOffset.dx, lessThan(wideSize.width - 320)); // Default master view width is 320.0.
15921592
expect(tester.getCenter(find.byType(ListView)), const Offset(160, 356));
1593-
},
1594-
leakTrackingTestConfig: const LeakTrackingTestConfig(
1595-
// TODO(polina-c): remove after fixing
1596-
// https://github.com/flutter/flutter/issues/133705
1597-
notDisposedAllowList: <String, int?> {'ValueNotifier<double>':5},
1598-
));
1593+
});
15991594

16001595
testWidgets('Material2 - LicensePage master view layout position - rtl', (WidgetTester tester) async {
16011596
const TextDirection textDirection = TextDirection.rtl;

0 commit comments

Comments
 (0)