-
Notifications
You must be signed in to change notification settings - Fork 3.3k
[flutter_adaptive_scaffold] Fix some memory leaks [prod-leak-fix] #8546
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
[flutter_adaptive_scaffold] Fix some memory leaks [prod-leak-fix] #8546
Conversation
It looks like this pull request may not have tests. Please make sure to add tests before merging. If you need an exemption, contact "@test-exemption-reviewer" in the #hackers channel in Discord (don't just cc them here, they won't see it!). If you are not sure if you need tests, consider this rule of thumb: the purpose of a test is to make sure someone doesn't accidentally revert the fix. Ask yourself, is there anything in your PR that you feel it is important we not accidentally revert back to how it was before your fix? Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing. The test exemption team is a small volunteer group, so all reviewers should feel empowered to ask for tests, without delegating that responsibility entirely to the test exemption group. |
cc @polina-c |
More leaks must be fixed so we cannot yet activate leak testing on the package. I'd have 2 questions around that
How do you suggest with can fix them? |
Any feedback on this @gspencergoog ? |
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.
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
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 thank you! It looks like there are some merge conflicts, can you take a look? After resolving those we can land this. 🎊
Sure I'll fix them Do you have any suggestion on how to "fix" the static method (ex: Are we willing to do breaking changes? If not, what would be the best approach? |
Oh never mind, I just saw the readme saying it is dis-continuated. Is it still worth spending effort on it? |
We can still land this change, I really appreciate your work on this. :) |
flutter/packages@625023a...8542af3 2025-02-15 [email protected] [various] Enable `permissive-` for Windows plugin examples (flutter/packages#8636) 2025-02-15 [email protected] [pigeon] Update task queue handling (flutter/packages#8627) 2025-02-14 [email protected] Update CODEOWNERS (flutter/packages#8628) 2025-02-14 [email protected] [flutter_adaptive_scaffold] Fix some memory leaks (flutter/packages#8546) 2025-02-14 [email protected] [camera] Fix crash when setting activeFormat on FLTCaptureDevice (flutter/packages#8630) 2025-02-13 [email protected] [camera] Remove remaining OCMock usage in tests (flutter/packages#8624) 2025-02-13 [email protected] [webview_flutter_wkwebview] Change callback methods with a non-null return type to non-null (flutter/packages#8564) 2025-02-12 [email protected] [google_sign_in_ios] Adds Swift Package Manager support (flutter/packages#7356) 2025-02-12 [email protected] [camera_avfoundation] Migrate tests to Swift - part 1 (flutter/packages#8603) 2025-02-12 [email protected] [video_player] Re-enables `asset videos live stream duration != 0` test for Android (flutter/packages#8610) 2025-02-12 [email protected] [go_router_builder] Add support for `TypedStatefulShellBranch`'s `preload` (flutter/packages#8587) 2025-02-12 [email protected] [local_auth_darwin] Fix test name for clarity (flutter/packages#8499) 2025-02-11 [email protected] [ci] Manually roll master, set -Xmx4G (flutter/packages#8586) 2025-02-11 49699333+dependabot[bot]@users.noreply.github.com [dependabot]: Bump the gradle-plugin group across 4 directories with 1 update (flutter/packages#8551) 2025-02-10 [email protected] [pigeon] Add errors for ProxyAPI callback methods and null instances when reading in a ProxyApiBaseCodec (flutter/packages#8567) 2025-02-10 [email protected] [shared_preferences]Fix : SetState returning future (flutter/packages#8398) 2025-02-10 [email protected] [various] Add deprecation notices to READMEs (flutter/packages#8598) 2025-02-10 [email protected] [camera] Remove OCMock from CameraSettingsTests, CameraMethodChannelTests and CameraSessionPresetsTests (flutter/packages#8592) 2025-02-10 [email protected] [camera] Remove OCMock from FLTCamPhotoCaptureTests, FLTSavePhotoDelegateTests and StreamingTests (flutter/packages#8590) 2025-02-07 [email protected] [go_router] Add `preload` parameter to `StatefulShellBranchData.$branch` (flutter/packages#8545) 2025-02-07 [email protected] [video_player_avfoundation] iOS platform view support (flutter/packages#8237) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages-flutter-autoroll Please CC [email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
I pulled these changes into my fork! Are there any other changes I might be missing that should also be pulled in? |
@hanskokx there is no more changes to pull (from this PR at least). However, the design of the package creates memory leaks and should be changed in my opinion. Those memory leaks can be detected with leak_tracker https://github.com/dart-lang/leak_tracker/blob/main/doc%2Fleak_tracking%2FDETECT.md Some detected memory leaks are from the packages/packages/flutter_adaptive_scaffold/lib/src/adaptive_scaffold.dart Lines 526 to 543 in 45c1997
Those static methods create CurvedAnimation s that never get disposed. They are then used in a build method:packages/packages/flutter_adaptive_scaffold/lib/src/adaptive_scaffold.dart Lines 700 to 707 in 45c1997
|
Fixes some memory leaks
See the documentation: https://github.com/dart-lang/leak_tracker/blob/main/doc%2Fleak_tracking%2FDETECT.md
Pre-launch Checklist
dart format
.)[shared_preferences]
pubspec.yaml
with an appropriate new version according to the pub versioning philosophy, or this PR is exempt from version changes.CHANGELOG.md
to add a description of the change, following repository CHANGELOG style, or this PR is exempt from CHANGELOG changes.///
).If you need help, consider asking for advice on the #hackers-new channel on Discord.