flutter_oktoast
flutter_oktoast copied to clipboard
Fix memory issue for leak_tracking detecting
Hi, there are some memory issues detected by leak_tracking when using the package.
onLeaks: {totals: {notDisposed: 4, notGCed: 0, gcedLate: 7}, time: 1751245242208}
flutter: leak_tracker: 11 memory leak(s): not disposed: 4, not GCed: 0, GCed late: 7
flutter: leak:OverlayEntry:
flutter: leak: identityHashCode: 8114866
flutter: leak: context:
flutter: leak: start: >
flutter: leak: #6______startLeakTracking.<anonymous_closure>_(package:example_for_oktoast/main.dart:36:43)
flutter: leak: #7______FlutterMemoryAllocations.dispatchObjectEvent_(package:flutter/src/foundation/memory_allocations.dart:249:23)
flutter: leak: #8______FlutterMemoryAllocations.dispatchObjectCreated_(package:flutter/src/foundation/memory_allocations.dart:283:5)
flutter: leak: #9______ChangeNotifier.maybeDispatchObjectCreation_(package:flutter/src/foundation/change_notifier.dart:238:41)
flutter: leak: #10_____ChangeNotifier.addListener_(package:flutter/src/foundation/change_notifier.dart:278:7)
flutter: leak: #11_____new_ToastFuture.__(package:oktoast/src/core/toast_future.dart:11:12)
flutter: leak: #12_____showToastWidget_(package:oktoast/src/core/toast.dart:175:42)
flutter: leak: #13______MyHomePageState._showToast_(package:example_for_oktoast/main.dart:129:37)
flutter: leak: #14______InkResponseState.handleTap_(package:flutter/src/material/ink_well.dart:1176:21)
flutter: leak: #15_____GestureRecognizer.invokeCallback_(package:flutter/src/gestures/recognizer.dart:351:24)
flutter: leak: #16_____TapGestureRecognizer.handleTapUp_(package:flutter/src/gestures/tap.dart:656:11)
flutter: leak: #17_____BaseTapGestureRecognizer._checkUp_(package:flutter/src/gestures/tap.dart:313:5)
flutter: leak: #18_____BaseTapGestureRecognizer.handlePrimaryPointer_(package:flutter/src/gestures/tap.dart:246:7)
flutter: leak: #19_____PrimaryPointerGestureRecognizer.handleEvent_(package:flutter/src/gestures/recognizer.dart:703:9)
flutter: leak: #20_____PointerRouter._dispatch_(package:flutter/src/gestures/pointer_router.dart:98:12)
flutter: leak: #21_____PointerRouter._dispatchEventToRoutes.<anonymous_closure>_(package:flutter/src/gestures/pointer_router.dart:143:9)
flutter: leak: #22______LinkedHashMapMixin.forEach_(dart:_compact_hash:726:13)
flutter: leak: #23_____PointerRouter._dispatchEventToRoutes_(package:flutter/src/gestures/pointer_router.dart:141:18)
flutter: leak: #24_____PointerRouter.route_(package:flutter/src/gestures/pointer_router.dart:127:7)
flutter: leak: #25_____GestureBinding.handleEvent_(package:flutter/src/gestures/binding.dart:502:19)
flutter: leak: #26_____GestureBinding.dispatchEvent_(package:flutter/src/gestures/binding.dart:482:22)
flutter: leak: #27_____RendererBinding.dispatchEvent_(package:flutter/src/rendering/binding.dart:457:11)
flutter: leak: #28_____GestureBinding._handlePointerEventImmediately_(package:flutter/src/gestures/binding.dart:427:7)
flutter: leak: #29_____GestureBinding.handlePointerEvent_(package:flutter/src/gestures/binding.dart:390:5)
flutter: leak: #30_____GestureBinding._flushPointerEventQueue_(package:flutter/src/gestures/binding.dart:337:7)
flutter: leak: #31_____GestureBinding._handlePointerDataPacket_(package:flutter/src/gestures/binding.dart:306:9)
flutter: leak: #32______invoke1_(dart:ui/hooks.dart:328:13)
flutter: leak: #33_____PlatformDispatcher._dispatchPointerDataPacket_(dart:ui/platform_dispatcher.dart:450:7)
flutter: leak: #34______dispatchPointerDataPacket_(dart:ui/hooks.dart:262:31)
flutter: leak:
flutter:
the example code is at the branch leak_example.
call _OverlayEntryWidget.entry.dispose() can fix this problem. :-)
Hey, maybe you can upgrade the jdk enviroment. my commit shouldn't cause this problem. Cause the flutter 3.32 using compileSdk 35 requires Android Gradle Plugin (AGP) 8.1.0 or higher.
@YanhqZ Sorry for the late review. Could you revert changes regarding the example so that we can make those changes later in separate commits and focus on the scope of the PR? We won't require your PR to resolve all CI issues before merging. :)