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