flutter_oktoast icon indicating copy to clipboard operation
flutter_oktoast copied to clipboard

Fix memory issue for leak_tracking detecting

Open YanhqZ opened this issue 7 months ago • 2 comments

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. :-)

YanhqZ avatar Jun 30 '25 01:06 YanhqZ

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 avatar Aug 05 '25 06:08 YanhqZ

@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. :)

AlexV525 avatar Nov 15 '25 04:11 AlexV525