weak_cache 2.1.3 copy "weak_cache: ^2.1.3" to clipboard
weak_cache: ^2.1.3 copied to clipboard

Weak cache that uses weak references for holding values. Implements full Map interface including keys and values iteration.

2.1.3 #

  • Fix possible cast error in update and putIfAbsent.

    MapBase uses containsKey which is unreliable and creates data race (due to GC) between check and read.

  • Optimize length.

    MapBase uses keys.length which causes iteration and creation of strong snapshot.

2.1.2 #

  • Optimize cache entry removal performance.

    Previously removeWhere was used which caused iteration of whole cache set on every removal. Now additional Expando is used to map Weak references to their keys.

2.1.1 #

  • Fix web release target compilation.

2.1.0 #

  • Add weak_cache.utils library with expandoCompatible utility function.
  • Update type check, to correctly detect all disallowed values types.

2.0.1 #

  • Remove dependency on package:disposed.
  • Fix "leak" of nulled Weak references, if objects where added while iterating.

    Generally you should not modify cache while iterating it, but this is technically possible.

2.0.0 #

  • Requires Dart 3.0.0
  • BREAKING: remove WeakCache.cacheFinalizer.
  • Fix memory leak caused by instance member finalizer.
  • Optimize containsValue.
  • Fix concurrent modification error, now using keys/values/entries will temporarily prevent them from being garbage collected.

1.0.0 #

  • Initial version.
2
likes
140
pub points
17%
popularity

Publisher

unverified uploader

Weak cache that uses weak references for holding values. Implements full Map interface including keys and values iteration.

Repository (GitHub)
View/report issues

Topics

#cache #memory

Documentation

API reference

License

ISC (LICENSE)

Dependencies

meta

More

Packages that depend on weak_cache