purge method
Removes all entries whose keys were garbage-collected.
Implementation
WeakKeyMap<K, V> purge() {
final onPurgedValues = this.onPurgedValues;
var purgedValues = <V>[];
_map.removeWhere((key, value) {
if (value.target == null) {
if (onPurgedValues != null) {
var v = value.payload;
if (v != null) {
purgedValues.add(v);
}
}
return true;
}
return false;
});
_onPurgeValues(purgedValues);
_unpurgedCount = 0;
if (onPurgedValues != null && purgedValues.isNotEmpty) {
onPurgedValues(purgedValues);
}
return this;
}