iterate method
void
iterate(
- void action(
- K,
- V
Iterates over live entries only.
Implementation
void iterate(void Function(K, V) action) {
List<_Entry<K, V>>? del;
for (var k in _map.keys) {
var target = k.target;
if (target == null) {
del ??= <_Entry<K, V>>[];
del.add(k);
} else {
var payload = k.payload;
if (payload != null) {
action(target, payload);
} else {
del ??= <_Entry<K, V>>[];
del.add(k);
}
}
}
if (del != null) {
for (var e in del) {
_map.remove(e);
if (e is _EntryRef<K, V>) {
_onRemoveEntry(e);
}
}
_unpurgedCount = 0;
}
}