-
Notifications
You must be signed in to change notification settings - Fork 28.9k
Fix: Memory leak in UndoHistory widget because it never de-registered itself as global UndoManager client (Resolves #148291) #150661
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
Merged
justinmc
merged 2 commits into
flutter:master
from
matthew-carroll:148291_fix-memory-leak-in-undo-history-widget
Jun 22, 2024
Merged
+122
−0
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
… itself as global UndoManager client (Resolves flutter#148291)
justinmc
approved these changes
Jun 22, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 👍
Thanks for fixing this and thanks to your sponsors! I'm happy to review any more if they keep signing up :)
I'm not sure what will happen. I suggest that you try the behavior that you're asking about and let us know if there are any new problems. |
engine-flutter-autoroll
added a commit
to engine-flutter-autoroll/packages
that referenced
this pull request
Jun 23, 2024
…gistered itself as global UndoManager client (Resolves #148291) (flutter/flutter#150661)
engine-flutter-autoroll
added a commit
to engine-flutter-autoroll/packages
that referenced
this pull request
Jun 23, 2024
…gistered itself as global UndoManager client (Resolves #148291) (flutter/flutter#150661)
hello-coder-xu
added a commit
to hello-coder-xu/flutter
that referenced
this pull request
Jun 24, 2024
* master: (213 commits) Fix: Memory leak in UndoHistory widget because it never de-registered itself as global UndoManager client (Resolves flutter#148291) (flutter#150661) [CupertinoActionSheet] Fix the layout (part 1) (flutter#149636) Remove discontinued `device_info` and `connectivity` plugins from `flutter_gallery`, roll pub packages (flutter#150585) [a11y] Update semantics in bottom_navigation_bar.dart (flutter#150576) Roll Flutter Engine from dda82d905f37 to 33415c6ee7c2 (7 revisions) (flutter#150637) Reland 4: [CupertinoActionSheet] Match colors to native (flutter#150442) Enable SelectionArea double tap/triple tap gesture support for mobile platforms (flutter#149295) made SelectionArea alignment consistent between web and other platform (flutter#150037) Fix link hook typo (flutter#150194) Stop looking for .packages when analyzing (flutter#150349) Update flutter.dev links from misc packages to more permanent destinations (flutter#150532) Roll Flutter Engine from dd37cefd4a94 to dda82d905f37 (9 revisions) (flutter#150582) Update Material token to the latest 4.1.0 (flutter#150382) Let the lockfile script generate lockfiles for kotlin gradle files as well (flutter#150471) Make popup menu hardcoded padding configurable (flutter#150506) [flutter_tools] un-hide the --dds flag (flutter#150280) [material/menu_anchor.dart] Remove _MenuAnchorState from parent when disposed. (flutter#149586) Add test for inherited_notifier.0.dart (flutter#150344) [CLI tool] in `flutter test`, consider `--flavor` when validating the cached asset bundle (flutter#150461) Test InputDecoration API examples (flutter#148560) ...
hello-coder-xu
added a commit
to hello-coder-xu/flutter
that referenced
this pull request
Jun 24, 2024
…ileTheme * master: (88 commits) Fix: Memory leak in UndoHistory widget because it never de-registered itself as global UndoManager client (Resolves flutter#148291) (flutter#150661) [CupertinoActionSheet] Fix the layout (part 1) (flutter#149636) Remove discontinued `device_info` and `connectivity` plugins from `flutter_gallery`, roll pub packages (flutter#150585) [a11y] Update semantics in bottom_navigation_bar.dart (flutter#150576) Roll Flutter Engine from dda82d905f37 to 33415c6ee7c2 (7 revisions) (flutter#150637) Reland 4: [CupertinoActionSheet] Match colors to native (flutter#150442) Enable SelectionArea double tap/triple tap gesture support for mobile platforms (flutter#149295) made SelectionArea alignment consistent between web and other platform (flutter#150037) Fix link hook typo (flutter#150194) Stop looking for .packages when analyzing (flutter#150349) Update flutter.dev links from misc packages to more permanent destinations (flutter#150532) Roll Flutter Engine from dd37cefd4a94 to dda82d905f37 (9 revisions) (flutter#150582) Update Material token to the latest 4.1.0 (flutter#150382) Let the lockfile script generate lockfiles for kotlin gradle files as well (flutter#150471) Make popup menu hardcoded padding configurable (flutter#150506) [flutter_tools] un-hide the --dds flag (flutter#150280) [material/menu_anchor.dart] Remove _MenuAnchorState from parent when disposed. (flutter#149586) Add test for inherited_notifier.0.dart (flutter#150344) [CLI tool] in `flutter test`, consider `--flavor` when validating the cached asset bundle (flutter#150461) Test InputDecoration API examples (flutter#148560) ...
engine-flutter-autoroll
added a commit
to engine-flutter-autoroll/packages
that referenced
this pull request
Jun 24, 2024
…gistered itself as global UndoManager client (Resolves #148291) (flutter/flutter#150661)
engine-flutter-autoroll
added a commit
to engine-flutter-autoroll/packages
that referenced
this pull request
Jun 24, 2024
…gistered itself as global UndoManager client (Resolves #148291) (flutter/flutter#150661)
4 tasks
engine-flutter-autoroll
added a commit
to engine-flutter-autoroll/packages
that referenced
this pull request
Jun 25, 2024
…gistered itself as global UndoManager client (Resolves #148291) (flutter/flutter#150661)
engine-flutter-autoroll
added a commit
to engine-flutter-autoroll/packages
that referenced
this pull request
Jun 25, 2024
…gistered itself as global UndoManager client (Resolves #148291) (flutter/flutter#150661)
engine-flutter-autoroll
added a commit
to engine-flutter-autoroll/packages
that referenced
this pull request
Jun 25, 2024
…gistered itself as global UndoManager client (Resolves #148291) (flutter/flutter#150661)
auto-submit bot
pushed a commit
to flutter/packages
that referenced
this pull request
Jun 25, 2024
Roll Flutter from 6c06abb to e726eb4 (51 revisions) flutter/flutter@6c06abb...e726eb4 2024-06-25 engine-flutter-autoroll@skia.org Roll Packages from 711b4ac to 03f5f6d (21 revisions) (flutter/flutter#150779) 2024-06-25 engine-flutter-autoroll@skia.org Roll Flutter Engine from afa7ce19bca8 to fbd92055f3a6 (1 revision) (flutter/flutter#150777) 2024-06-25 32538273+ValentinVignal@users.noreply.github.com Reland Add tests for form_text_field.1.dart (#150481) (#150696) (flutter/flutter#150750) 2024-06-25 104349824+huycozy@users.noreply.github.com Add an example for CupertinoPopupSurface (flutter/flutter#150357) 2024-06-25 danny@tuppeny.com [flutter_tools/dap] Handle app.stop errors when launching/attaching (flutter/flutter#149734) 2024-06-25 engine-flutter-autoroll@skia.org Roll Flutter Engine from be7db94196fe to afa7ce19bca8 (18 revisions) (flutter/flutter#150762) 2024-06-25 sigurdm@google.com Remove dubious comment (flutter/flutter#150608) 2024-06-25 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Manual engine roll to 6884e83 (#150733)" (flutter/flutter#150746) 2024-06-25 34871572+gmackall@users.noreply.github.com Manual engine roll to 6884e83 (flutter/flutter#150733) 2024-06-24 goderbauer@google.com Linkify 'see also' sections (flutter/flutter#150734) 2024-06-24 137456488+flutter-pub-roller-bot@users.noreply.github.com Roll pub packages (flutter/flutter#150712) 2024-06-24 parlough@gmail.com Update flutter.dev links from framework to more permanent destinations (flutter/flutter#150531) 2024-06-24 jason-simmons@users.noreply.github.com Manual engine roll to be7db94196fe (flutter/flutter#150714) 2024-06-24 reidbaker@google.com allow adb to set canfail then use canFail=true for clearing logs (flutter/flutter#150517) 2024-06-24 reidbaker@google.com Update android_device.dart to have clearLogs not print to standard error (flutter/flutter#150197) 2024-06-24 goderbauer@google.com Update issue link in analysis_options.yaml (flutter/flutter#150395) 2024-06-24 srawlins@google.com Fix a number of broken doc comment references (flutter/flutter#150540) 2024-06-24 katelovett@google.com Fix flaky sliver tree test (flutter/flutter#150707) 2024-06-24 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Add tests for form_text_field.1.dart (#150481)" (flutter/flutter#150696) 2024-06-24 32538273+ValentinVignal@users.noreply.github.com Add tests for form_text_field.1.dart (flutter/flutter#150481) 2024-06-22 matthew-carroll@users.noreply.github.com Fix: Memory leak in UndoHistory widget because it never de-registered itself as global UndoManager client (Resolves #148291) (flutter/flutter#150661) 2024-06-22 dkwingsmt@users.noreply.github.com [CupertinoActionSheet] Fix the layout (part 1) (flutter/flutter#149636) 2024-06-21 34871572+gmackall@users.noreply.github.com Remove discontinued `device_info` and `connectivity` plugins from `flutter_gallery`, roll pub packages (flutter/flutter#150585) 2024-06-21 jhy03261997@gmail.com [a11y] Update semantics in bottom_navigation_bar.dart (flutter/flutter#150576) 2024-06-21 engine-flutter-autoroll@skia.org Roll Flutter Engine from dda82d905f37 to 33415c6ee7c2 (7 revisions) (flutter/flutter#150637) 2024-06-21 dkwingsmt@users.noreply.github.com Reland 4: [CupertinoActionSheet] Match colors to native (flutter/flutter#150442) 2024-06-21 rmolivares@renzo-olivares.dev Enable SelectionArea double tap/triple tap gesture support for mobile platforms (flutter/flutter#149295) 2024-06-21 limanegaya@gmail.com made SelectionArea alignment consistent between web and other platform (flutter/flutter#150037) 2024-06-21 moritz@suemmermann.de Fix link hook typo (flutter/flutter#150194) 2024-06-21 sigurdm@google.com Stop looking for .packages when analyzing (flutter/flutter#150349) 2024-06-20 parlough@gmail.com Update flutter.dev links from misc packages to more permanent destinations (flutter/flutter#150532) 2024-06-20 engine-flutter-autoroll@skia.org Roll Flutter Engine from dd37cefd4a94 to dda82d905f37 (9 revisions) (flutter/flutter#150582) 2024-06-20 36861262+QuncCccccc@users.noreply.github.com Update Material token to the latest 4.1.0 (flutter/flutter#150382) 2024-06-20 34871572+gmackall@users.noreply.github.com Let the lockfile script generate lockfiles for kotlin gradle files as well (flutter/flutter#150471) 2024-06-20 bruno.leroux@gmail.com Make popup menu hardcoded padding configurable (flutter/flutter#150506) 2024-06-20 christopherfujino@gmail.com [flutter_tools] un-hide the --dds flag (flutter/flutter#150280) 2024-06-20 59215665+davidhicks980@users.noreply.github.com [material/menu_anchor.dart] Remove _MenuAnchorState from parent when disposed. (flutter/flutter#149586) 2024-06-20 32538273+ValentinVignal@users.noreply.github.com Add test for inherited_notifier.0.dart (flutter/flutter#150344) 2024-06-20 andrewrkolos@gmail.com [CLI tool] in `flutter test`, consider `--flavor` when validating the cached asset bundle (flutter/flutter#150461) 2024-06-20 82763757+NobodyForNothing@users.noreply.github.com Test InputDecoration API examples (flutter/flutter#148560) 2024-06-20 polinach@google.com Clean leaky tests. (flutter/flutter#150335) 2024-06-20 engine-flutter-autoroll@skia.org Roll Flutter Engine from f9c497f178d3 to dd37cefd4a94 (2 revisions) (flutter/flutter#150537) 2024-06-20 engine-flutter-autoroll@skia.org Roll Flutter Engine from a31279381b40 to f9c497f178d3 (9 revisions) (flutter/flutter#150528) 2024-06-19 32538273+ValentinVignal@users.noreply.github.com Add tests for about_list_tile.0.dart (flutter/flutter#150181) 2024-06-19 engine-flutter-autoroll@skia.org Roll Flutter Engine from 0ad18fe4c0b5 to a31279381b40 (7 revisions) (flutter/flutter#150473) 2024-06-18 jhy03261997@gmail.com Revert "[a11y] Add semantics: button to bottom navigation bar items and dropdown menu items" (flutter/flutter#150445) ...
Merged
sigurdm
pushed a commit
to sigurdm/flutter
that referenced
this pull request
Jun 26, 2024
… itself as global UndoManager client (Resolves flutter#148291) (flutter#150661) Unsets a global `client` variable that was missed.
engine-flutter-autoroll
added a commit
to engine-flutter-autoroll/packages
that referenced
this pull request
Aug 6, 2024
…gistered itself as global UndoManager client (Resolves #148291) (flutter/flutter#150661)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fix: Memory leak in UndoHistory widget because it never de-registered itself as global UndoManager client (Resolves #148291)
The
UndoHistory
widget works by making itself the globalUndoManager.client
. TheUndoHistory
widget correctly registers itself as that client, but never de-registers itself. That lead to two problems:UndoHistory
loses focus, it's still the recipient of undo/redo signals.UndoHistory
is disposed, it's disposedState
object still receives undo/redo signals.This PR de-registers the
UndoHistory
widget in both of the above scenarios.Pre-launch Checklist
///
).