diff --git a/lib/widgets/about/tv_license_page.dart b/lib/widgets/about/tv_license_page.dart index 76eb7a847..e487f9760 100644 --- a/lib/widgets/about/tv_license_page.dart +++ b/lib/widgets/about/tv_license_page.dart @@ -219,9 +219,7 @@ class _PackageLicensePageState extends State<_PackageLicensePage> { return true; }()); for (final LicenseEntry license in widget.licenseEntries) { - if (!mounted) { - return; - } + if (!mounted) return; assert(() { Timeline.timeSync('_initLicenses()', () {}, flow: Flow.step(debugFlowId)); return true; @@ -231,9 +229,7 @@ class _PackageLicensePageState extends State<_PackageLicensePage> { Priority.animation, debugLabel: 'License', ); - if (!mounted) { - return; - } + if (!mounted) return; setState(() { _licenses.add(const Padding( padding: EdgeInsets.all(18.0), diff --git a/lib/widgets/debug/general.dart b/lib/widgets/debug/general.dart index a85913b0b..87ed6aee4 100644 --- a/lib/widgets/debug/general.dart +++ b/lib/widgets/debug/general.dart @@ -66,6 +66,9 @@ class _DebugGeneralSectionState extends State with Automati ElevatedButton( onPressed: () => LeakTracking.collectLeaks().then((leaks) { leaks.byType.forEach((type, reports) { + // ignore `notGCed` and `gcedLate` for now + if (type != LeakType.notDisposed) return; + debugPrint('* leak type=$type'); groupBy(reports, (report) => report.type).forEach((reportType, typedReports) { debugPrint(' * report type=$reportType'); diff --git a/lib/widgets/viewer/visual/controller_mixin.dart b/lib/widgets/viewer/visual/controller_mixin.dart index b00c44761..90fa9af8b 100644 --- a/lib/widgets/viewer/visual/controller_mixin.dart +++ b/lib/widgets/viewer/visual/controller_mixin.dart @@ -26,7 +26,7 @@ mixin EntryViewControllerMixin on State { ValueNotifier get entryNotifier; Future initEntryControllers(AvesEntry? entry) async { - if (entry == null) return; + if (!mounted || entry == null) return; if (entry.isVideo) { await _initVideoController(entry); diff --git a/lib/widgets/viewer/visual/video/cover.dart b/lib/widgets/viewer/visual/video/cover.dart index 3a09a897f..0a56c8ff3 100644 --- a/lib/widgets/viewer/visual/video/cover.dart +++ b/lib/widgets/viewer/visual/video/cover.dart @@ -79,6 +79,7 @@ class _VideoCoverState extends State { @override void dispose() { _unregisterWidget(widget); + _dismissedCoverMagnifierController?.dispose(); _videoCoverInfoNotifier.dispose(); super.dispose(); }