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 5 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