From 0278671bda121cafee337e40399bd875690bfd7c Mon Sep 17 00:00:00 2001 From: Justin McCandless Date: Tue, 22 Aug 2023 10:23:13 -0700 Subject: [PATCH] Fix memory leak in Form (#132987) Diposes some restorable variables that weren't disposed before. --- packages/flutter/lib/src/widgets/form.dart | 7 +++++++ packages/flutter/test/material/text_form_field_test.dart | 3 --- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/flutter/lib/src/widgets/form.dart b/packages/flutter/lib/src/widgets/form.dart index 07476568a35..ca980ad9330 100644 --- a/packages/flutter/lib/src/widgets/form.dart +++ b/packages/flutter/lib/src/widgets/form.dart @@ -573,6 +573,13 @@ class FormFieldState extends State> with RestorationMixin { super.deactivate(); } + @override + void dispose() { + _errorText.dispose(); + _hasInteractedByUser.dispose(); + super.dispose(); + } + @override Widget build(BuildContext context) { if (widget.enabled) { diff --git a/packages/flutter/test/material/text_form_field_test.dart b/packages/flutter/test/material/text_form_field_test.dart index f95f8bfaaa5..8877ed8e9ec 100644 --- a/packages/flutter/test/material/text_form_field_test.dart +++ b/packages/flutter/test/material/text_form_field_test.dart @@ -247,9 +247,6 @@ void main() { }, variant: const TargetPlatformVariant({ TargetPlatform.linux, TargetPlatform.windows }), skip: kIsWeb, // [intended] we don't supply the cut/copy/paste buttons on the web. - // TODO(polina-c): remove after fixing - // https://github.com/flutter/flutter/issues/130467 - leakTrackingTestConfig: const LeakTrackingTestConfig(allowAllNotDisposed: true, allowAllNotGCed: true), ); testWidgetsWithLeakTracking(