v3.3.13
-
TreeReferenceMap:- Replaced
_purgedfield type fromDualWeakMaptoDualLazyWeakMap. - Use global
LazyWeakReferenceManagerByTypeto createDualLazyWeakMapinstances for purged entries.
- Replaced
-
ExpandoWithFinalizer:- Refactored to extend generic
WithFinalizerbase class. - Introduced strongly typed
FinalizerValueWrapperabstraction and concrete implementations:SimpleFinalizerWrapper,SimpleFinalizerWrapperDebugExpandoValueWrapper,ExpandoValueWrapperDebug
- Added
AttachOnlyFinalizerclass for write-only finalizer usage. - Added
debugmode to retain weak references to keys for inspection. - Improved finalizer attach/detach logic and wrapper management.
- Refactored to extend generic
-
lazy_weak_reference.dart:- Added
GenericReferenceinterface for strong/weak reference abstraction. - Added
LazyWeakReferenceManagerByTypesingleton managing per-typeLazyWeakReferenceManagerinstances. - Added
toStringandcompareToimprovements toLazyWeakReference. - Added
LazyWeakReferenceManagerByTypeclass for centralized management. - Added
toStringoverride toLazyWeakReferenceManager.
- Added
-
weak_map.dart:- Refactored internal entry classes to support lazy weak references:
- Added
_EntryLazyRef,_EntryLazyRef1,_EntryLazyRef2,_EntryLazyRefValue.
- Added
WeakKeyMap: include _autoPurge in isAutoPurgeRequired and centralize auto-purge check.- Added
LazyWeakKeyMapsubclass using lazy weak references for keys. - Added
DualLazyWeakMapsubclass using lazy weak references for keys and values. - Added factory constructors
WeakKeyMap.configuredandDualWeakMap.configuredto create lazy weak reference variants. - Added
removeWhereKeyextension method onMapandWeakKeyMap. - Updated purge logic to use
removeWhereKey. - Updated
DualWeakMapto optionally use lazy weak references for keys and values.
- Refactored internal entry classes to support lazy weak references:
-
resource.dart:- Changed
ResourceContentCacheto use private_onLoadEventStreaminstead of publiconLoadfield. - Updated
ResourceContentto lazily initialize_onLoadEventStreamand use it internally. - Changed event notification to use
_onLoadEventStream?.addinstead ofonLoad.add.
- Changed