Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix memory leak in _SelectableTextState #135049

Merged
merged 4 commits into from
Sep 20, 2023

Conversation

ksokolovskyi
Copy link
Contributor

This PR fixes memory leak in the _SelectableTextState, which did not dispose old _TextSpanEditingController before the creation of the new one in didUpdateWidget.

Description

Tests

  • Updates selectable_text_test.dart to use testWidgetsWithLeakTracking.

Pre-launch Checklist

  • I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
  • I read the [Tree Hygiene] wiki page, which explains my responsibilities.
  • I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
  • I signed the [CLA].
  • I listed at least one issue that this PR fixes in the description above.
  • I updated/added relevant documentation (doc comments with ///).
  • I added new tests to check the change I am making, or this PR is [test-exempt].
  • All existing and new tests are passing.

@github-actions github-actions bot added a: text input Entering text in a text field or keyboard related problems framework flutter/packages/flutter repository. See also f: labels. f: material design flutter/packages/flutter/material repository. labels Sep 19, 2023
@ksokolovskyi
Copy link
Contributor Author

cc @polina-c

Copy link
Contributor

@Renzo-Olivares Renzo-Olivares left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@polina-c polina-c added the a: leak tracking Issues and PRs related to memory leaks detected by leak_tracker label Sep 20, 2023
@polina-c polina-c merged commit 04854e8 into flutter:master Sep 20, 2023
66 of 67 checks passed
@ksokolovskyi
Copy link
Contributor Author

@Renzo-Olivares @polina-c thanks a lot for the review!

engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Sep 21, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Sep 21, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Sep 21, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Sep 21, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Sep 21, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Sep 21, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Sep 21, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Sep 21, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Sep 21, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Sep 21, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Sep 22, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Sep 22, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Sep 22, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Sep 22, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Sep 22, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Sep 22, 2023
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Sep 23, 2023
…4985)

Manual roll Flutter from 893650416352 to f92884c7b846 (48 revisions)

Manual roll requested by dit@google.com

flutter/flutter@8936504...f92884c

2023-09-21 jiahaog@users.noreply.github.com Rename `debugProfilePlatformChannels` to a constant that works in release mode (flutter/flutter#134922)
2023-09-20 82763757+NobodyForNothing@users.noreply.github.com Mark ReastaurationManager not disposed (flutter/flutter#134832)
2023-09-20 82763757+NobodyForNothing@users.noreply.github.com cover more tests with leak tracing (flutter/flutter#134834)
2023-09-20 82763757+NobodyForNothing@users.noreply.github.com Fix leak in hardware_keyboard_test.dart (flutter/flutter#134380)
2023-09-20 sokolovskyi.konstantin@gmail.com Fix memory leak in _SelectableTextState (flutter/flutter#135049)
2023-09-20 engine-flutter-autoroll@skia.org Roll Flutter Engine from 39c0f2ea1f53 to 89d864552acd (4 revisions) (flutter/flutter#135169)
2023-09-20 ditman@gmail.com [deps] Update package:web dependency. (flutter/flutter#135174)
2023-09-20 yjbanov@google.com finer grained logging of Chromium launch sequence (flutter/flutter#135078)
2023-09-20 34871572+gmackall@users.noreply.github.com Upgrade AGP version in tracing_tests (flutter/flutter#134671)
2023-09-20 82763757+NobodyForNothing@users.noreply.github.com Cover cupertino/form_section_test with leak tracing (flutter/flutter#135158)
2023-09-20 sokolovskyi.konstantin@gmail.com Cover more test/widgets tests with leak tracking #7 (flutter/flutter#134943)
2023-09-20 goderbauer@google.com Enable strict-inference (flutter/flutter#135043)
2023-09-20 sokolovskyi.konstantin@gmail.com Cover more test/widgets tests with leak tracking #10 (flutter/flutter#135143)
2023-09-20 82763757+NobodyForNothing@users.noreply.github.com cover more tests with leak tracing (flutter/flutter#134833)
2023-09-20 ychris@google.com codeisn extension safe iOS framework (flutter/flutter#134966)
2023-09-20 engine-flutter-autoroll@skia.org Roll Flutter Engine from 6f256257b79f to 55314d08d792 (2 revisions) (flutter/flutter#135151)
2023-09-20 gspencergoog@users.noreply.github.com Remove 'must be non-null' and 'must not be null' comments in widgets library (flutter/flutter#134992)
2023-09-20 engine-flutter-autoroll@skia.org Roll Flutter Engine from 5f82fc2f6f24 to 6f256257b79f (1 revision) (flutter/flutter#135147)
2023-09-20 43054281+camsim99@users.noreply.github.com [Android] Add Java/AGP/Gradle incompatibility warning to `flutter create` (flutter/flutter#131444)
2023-09-20 engine-flutter-autoroll@skia.org Roll Packages from d4e2454 to 51e74b9 (12 revisions) (flutter/flutter#135145)
2023-09-20 gspencergoog@users.noreply.github.com Remove 'must not be null' comments from various libraries. (flutter/flutter#134984)
2023-09-20 engine-flutter-autoroll@skia.org Roll Flutter Engine from 6535421b30d3 to 5f82fc2f6f24 (2 revisions) (flutter/flutter#135142)
2023-09-20 engine-flutter-autoroll@skia.org Roll Flutter Engine from 67d4aaef3c7b to 6535421b30d3 (1 revision) (flutter/flutter#135139)
2023-09-20 sokolovskyi.konstantin@gmail.com Cover more test/widgets tests with leak tracking #8 (flutter/flutter#135045)
2023-09-20 sokolovskyi.konstantin@gmail.com Cover more test/widgets tests with leak tracking #9 (flutter/flutter#135054)
2023-09-20 engine-flutter-autoroll@skia.org Roll Flutter Engine from 83b4df415bf3 to 67d4aaef3c7b (1 revision) (flutter/flutter#135128)
2023-09-20 engine-flutter-autoroll@skia.org Roll Flutter Engine from df4e6c079682 to 83b4df415bf3 (2 revisions) (flutter/flutter#135102)
2023-09-20 engine-flutter-autoroll@skia.org Roll Flutter Engine from 9c6b2500282b to df4e6c079682 (1 revision) (flutter/flutter#135101)
2023-09-20 engine-flutter-autoroll@skia.org Roll Flutter Engine from 24f7ac38dfa2 to 9c6b2500282b (3 revisions) (flutter/flutter#135098)
2023-09-20 engine-flutter-autoroll@skia.org Roll Flutter Engine from 36379b62bec8 to 24f7ac38dfa2 (2 revisions) (flutter/flutter#135096)
2023-09-20 engine-flutter-autoroll@skia.org Roll Flutter Engine from 81b93fc4a2cc to 36379b62bec8 (2 revisions) (flutter/flutter#135095)
2023-09-20 engine-flutter-autoroll@skia.org Roll Flutter Engine from 5a924a9017d7 to 81b93fc4a2cc (2 revisions) (flutter/flutter#135093)
2023-09-20 gspencergoog@users.noreply.github.com Remove 'must be non-null' and 'must not be null' comments from material. (flutter/flutter#134991)
2023-09-20 34871572+gmackall@users.noreply.github.com Unpin url launcher (remake) (flutter/flutter#134958)
2023-09-20 engine-flutter-autoroll@skia.org Roll Flutter Engine from a7af55c56aa6 to 5a924a9017d7 (10 revisions) (flutter/flutter#135085)
2023-09-20 engine-flutter-autoroll@skia.org Manual roll Flutter Engine from a7af55c56aa6 to 0d7db40c27fd (7 revisions) (flutter/flutter#135079)
2023-09-20 gspencergoog@users.noreply.github.com Remove 'must not be null' comments from painting and rendering libraries. (flutter/flutter#134993)
2023-09-20 82763757+NobodyForNothing@users.noreply.github.com cover more tests with leak tracking (flutter/flutter#134837)
2023-09-20 xilaizhang@google.com [flutter roll] Revert "Native assets support for Linux" (flutter/flutter#135069)
2023-09-20 engine-flutter-autoroll@skia.org Manual roll Flutter Engine from 10c480310926 to a7af55c56aa6 (4 revisions) (flutter/flutter#135071)
2023-09-19 zanderso@users.noreply.github.com Retry Linux web tests 1 time on roll presubmit (flutter/flutter#135073)
2023-09-19 ditman@gmail.com [web] Encode AssetManifest.bin as JSON and use that on the web. (flutter/flutter#131382)
2023-09-19 polinach@google.com Specify suggested format in doc comment. (flutter/flutter#134887)
2023-09-19 engine-flutter-autoroll@skia.org Manual roll Flutter Engine from 28f14e6eec4f to 10c480310926 (6 revisions) (flutter/flutter#135066)
...
Mairramer pushed a commit to Mairramer/flutter that referenced this pull request Oct 10, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 15, 2023
HugoOlthof pushed a commit to moneybird/packages that referenced this pull request Dec 13, 2023
…lutter#4985)

Manual roll Flutter from 893650416352 to f92884c7b846 (48 revisions)

Manual roll requested by dit@google.com

flutter/flutter@8936504...f92884c

2023-09-21 jiahaog@users.noreply.github.com Rename `debugProfilePlatformChannels` to a constant that works in release mode (flutter/flutter#134922)
2023-09-20 82763757+NobodyForNothing@users.noreply.github.com Mark ReastaurationManager not disposed (flutter/flutter#134832)
2023-09-20 82763757+NobodyForNothing@users.noreply.github.com cover more tests with leak tracing (flutter/flutter#134834)
2023-09-20 82763757+NobodyForNothing@users.noreply.github.com Fix leak in hardware_keyboard_test.dart (flutter/flutter#134380)
2023-09-20 sokolovskyi.konstantin@gmail.com Fix memory leak in _SelectableTextState (flutter/flutter#135049)
2023-09-20 engine-flutter-autoroll@skia.org Roll Flutter Engine from 39c0f2ea1f53 to 89d864552acd (4 revisions) (flutter/flutter#135169)
2023-09-20 ditman@gmail.com [deps] Update package:web dependency. (flutter/flutter#135174)
2023-09-20 yjbanov@google.com finer grained logging of Chromium launch sequence (flutter/flutter#135078)
2023-09-20 34871572+gmackall@users.noreply.github.com Upgrade AGP version in tracing_tests (flutter/flutter#134671)
2023-09-20 82763757+NobodyForNothing@users.noreply.github.com Cover cupertino/form_section_test with leak tracing (flutter/flutter#135158)
2023-09-20 sokolovskyi.konstantin@gmail.com Cover more test/widgets tests with leak tracking flutter#7 (flutter/flutter#134943)
2023-09-20 goderbauer@google.com Enable strict-inference (flutter/flutter#135043)
2023-09-20 sokolovskyi.konstantin@gmail.com Cover more test/widgets tests with leak tracking flutter#10 (flutter/flutter#135143)
2023-09-20 82763757+NobodyForNothing@users.noreply.github.com cover more tests with leak tracing (flutter/flutter#134833)
2023-09-20 ychris@google.com codeisn extension safe iOS framework (flutter/flutter#134966)
2023-09-20 engine-flutter-autoroll@skia.org Roll Flutter Engine from 6f256257b79f to 55314d08d792 (2 revisions) (flutter/flutter#135151)
2023-09-20 gspencergoog@users.noreply.github.com Remove 'must be non-null' and 'must not be null' comments in widgets library (flutter/flutter#134992)
2023-09-20 engine-flutter-autoroll@skia.org Roll Flutter Engine from 5f82fc2f6f24 to 6f256257b79f (1 revision) (flutter/flutter#135147)
2023-09-20 43054281+camsim99@users.noreply.github.com [Android] Add Java/AGP/Gradle incompatibility warning to `flutter create` (flutter/flutter#131444)
2023-09-20 engine-flutter-autoroll@skia.org Roll Packages from d4e2454 to 51e74b9 (12 revisions) (flutter/flutter#135145)
2023-09-20 gspencergoog@users.noreply.github.com Remove 'must not be null' comments from various libraries. (flutter/flutter#134984)
2023-09-20 engine-flutter-autoroll@skia.org Roll Flutter Engine from 6535421b30d3 to 5f82fc2f6f24 (2 revisions) (flutter/flutter#135142)
2023-09-20 engine-flutter-autoroll@skia.org Roll Flutter Engine from 67d4aaef3c7b to 6535421b30d3 (1 revision) (flutter/flutter#135139)
2023-09-20 sokolovskyi.konstantin@gmail.com Cover more test/widgets tests with leak tracking flutter#8 (flutter/flutter#135045)
2023-09-20 sokolovskyi.konstantin@gmail.com Cover more test/widgets tests with leak tracking flutter#9 (flutter/flutter#135054)
2023-09-20 engine-flutter-autoroll@skia.org Roll Flutter Engine from 83b4df415bf3 to 67d4aaef3c7b (1 revision) (flutter/flutter#135128)
2023-09-20 engine-flutter-autoroll@skia.org Roll Flutter Engine from df4e6c079682 to 83b4df415bf3 (2 revisions) (flutter/flutter#135102)
2023-09-20 engine-flutter-autoroll@skia.org Roll Flutter Engine from 9c6b2500282b to df4e6c079682 (1 revision) (flutter/flutter#135101)
2023-09-20 engine-flutter-autoroll@skia.org Roll Flutter Engine from 24f7ac38dfa2 to 9c6b2500282b (3 revisions) (flutter/flutter#135098)
2023-09-20 engine-flutter-autoroll@skia.org Roll Flutter Engine from 36379b62bec8 to 24f7ac38dfa2 (2 revisions) (flutter/flutter#135096)
2023-09-20 engine-flutter-autoroll@skia.org Roll Flutter Engine from 81b93fc4a2cc to 36379b62bec8 (2 revisions) (flutter/flutter#135095)
2023-09-20 engine-flutter-autoroll@skia.org Roll Flutter Engine from 5a924a9017d7 to 81b93fc4a2cc (2 revisions) (flutter/flutter#135093)
2023-09-20 gspencergoog@users.noreply.github.com Remove 'must be non-null' and 'must not be null' comments from material. (flutter/flutter#134991)
2023-09-20 34871572+gmackall@users.noreply.github.com Unpin url launcher (remake) (flutter/flutter#134958)
2023-09-20 engine-flutter-autoroll@skia.org Roll Flutter Engine from a7af55c56aa6 to 5a924a9017d7 (10 revisions) (flutter/flutter#135085)
2023-09-20 engine-flutter-autoroll@skia.org Manual roll Flutter Engine from a7af55c56aa6 to 0d7db40c27fd (7 revisions) (flutter/flutter#135079)
2023-09-20 gspencergoog@users.noreply.github.com Remove 'must not be null' comments from painting and rendering libraries. (flutter/flutter#134993)
2023-09-20 82763757+NobodyForNothing@users.noreply.github.com cover more tests with leak tracking (flutter/flutter#134837)
2023-09-20 xilaizhang@google.com [flutter roll] Revert "Native assets support for Linux" (flutter/flutter#135069)
2023-09-20 engine-flutter-autoroll@skia.org Manual roll Flutter Engine from 10c480310926 to a7af55c56aa6 (4 revisions) (flutter/flutter#135071)
2023-09-19 zanderso@users.noreply.github.com Retry Linux web tests 1 time on roll presubmit (flutter/flutter#135073)
2023-09-19 ditman@gmail.com [web] Encode AssetManifest.bin as JSON and use that on the web. (flutter/flutter#131382)
2023-09-19 polinach@google.com Specify suggested format in doc comment. (flutter/flutter#134887)
2023-09-19 engine-flutter-autoroll@skia.org Manual roll Flutter Engine from 28f14e6eec4f to 10c480310926 (6 revisions) (flutter/flutter#135066)
...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a: leak tracking Issues and PRs related to memory leaks detected by leak_tracker a: text input Entering text in a text field or keyboard related problems f: material design flutter/packages/flutter/material repository. framework flutter/packages/flutter repository. See also f: labels.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Memory Leak: _SelectableTextState does not dispose _TextSpanEditingController
3 participants