From acdcbae78a6458f91cd03539ace73607c682f853 Mon Sep 17 00:00:00 2001 From: Renzo Olivares Date: Thu, 31 Aug 2023 13:42:52 -0700 Subject: [PATCH] Revert "Fixing memory leak in EditableTextState" (#133804) Reverts flutter/flutter#131377 reverting because of internal google testing failures b/298310760 --- packages/flutter/lib/src/widgets/editable_text.dart | 5 +---- .../test/material/text_selection_theme_test.dart | 13 ++++++++++++- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/packages/flutter/lib/src/widgets/editable_text.dart b/packages/flutter/lib/src/widgets/editable_text.dart index f5287bf5bb..afd29530f9 100644 --- a/packages/flutter/lib/src/widgets/editable_text.dart +++ b/packages/flutter/lib/src/widgets/editable_text.dart @@ -2125,7 +2125,6 @@ class EditableTextState extends State with AutomaticKeepAliveClien late final Simulation _iosBlinkCursorSimulation = _DiscreteKeyFrameSimulation.iOSBlinkingCaret(); final ValueNotifier _cursorVisibilityNotifier = ValueNotifier(true); - late final ValueNotifier _debugCursorNotifier; final GlobalKey _editableKey = GlobalKey(); /// Detects whether the clipboard can paste. @@ -2793,7 +2792,6 @@ class EditableTextState extends State with AutomaticKeepAliveClien _scrollController.addListener(_onEditableScroll); _cursorVisibilityNotifier.value = widget.showCursor; _spellCheckConfiguration = _inferSpellCheckConfiguration(widget.spellCheckConfiguration); - _debugCursorNotifier = ValueNotifier(widget.showCursor); } // Whether `TickerMode.of(context)` is true and animations (like blinking the @@ -2938,7 +2936,6 @@ class EditableTextState extends State with AutomaticKeepAliveClien @override void dispose() { - _debugCursorNotifier.dispose(); _internalScrollController?.dispose(); _currentAutofillScope?.unregister(autofillId); widget.controller.removeListener(_didChangeTextEditingValue); @@ -4860,7 +4857,7 @@ class EditableTextState extends State with AutomaticKeepAliveClien cursorColor: _cursorColor, backgroundCursorColor: widget.backgroundCursorColor, showCursor: EditableText.debugDeterministicCursor - ? _debugCursorNotifier + ? ValueNotifier(widget.showCursor) : _cursorVisibilityNotifier, forceLine: widget.forceLine, readOnly: widget.readOnly, diff --git a/packages/flutter/test/material/text_selection_theme_test.dart b/packages/flutter/test/material/text_selection_theme_test.dart index 2e628c5620..4a990a5a0a 100644 --- a/packages/flutter/test/material/text_selection_theme_test.dart +++ b/packages/flutter/test/material/text_selection_theme_test.dart @@ -167,7 +167,18 @@ void main() { await tester.pumpAndSettle(); final RenderBox handle = tester.firstRenderObject(find.byType(CustomPaint)); expect(handle, paints..path(color: defaultSelectionHandleColor)); - }); + }, + // TODO(polina-c): remove after fixing + // https://github.com/flutter/flutter/issues/130469 + leakTrackingTestConfig: const LeakTrackingTestConfig( + notDisposedAllowList: { + 'ValueNotifier': 1, + 'ValueNotifier<_OverlayEntryWidgetState?>': 2, + 'ValueNotifier': 2, + '_InputBorderGap': 1, + }, + ), + ); testWidgets('ThemeData.textSelectionTheme will be used if provided', (WidgetTester tester) async { const TextSelectionThemeData textSelectionTheme = TextSelectionThemeData(