@@ -871,11 +871,11 @@ class _CollectionChangeRecord<V> implements CollectionChangeRecord<V> {
871
871
Iterable _iterable;
872
872
int _length;
873
873
874
- /// Keeps track of moved items.
875
- DuplicateMap _movedItems ;
874
+ /// Keeps track of the used records at any point in time (during & across `_check()` calls)
875
+ DuplicateMap _linkedRecords ;
876
876
877
- /// Keeps track of removed items .
878
- DuplicateMap _removedItems ;
877
+ /// Keeps track of the removed records at any point in time during `_check()` calls .
878
+ DuplicateMap _unlinkedRecords ;
879
879
880
880
ItemRecord <V > _previousItHead;
881
881
ItemRecord <V > _itHead, _itTail;
@@ -886,7 +886,7 @@ class _CollectionChangeRecord<V> implements CollectionChangeRecord<V> {
886
886
void _revertToPreviousState () {
887
887
if (! isDirty) return ;
888
888
889
- if (_movedItems != null ) _movedItems .clear ();
889
+ if (_linkedRecords != null ) _linkedRecords .clear ();
890
890
ItemRecord <V > prev;
891
891
int i = 0 ;
892
892
@@ -897,8 +897,8 @@ class _CollectionChangeRecord<V> implements CollectionChangeRecord<V> {
897
897
record._prev = prev;
898
898
if (prev != null ) prev._next = prev._nextPrevious = record;
899
899
900
- if (_movedItems == null ) _movedItems = new DuplicateMap ();
901
- _movedItems .put (record);
900
+ if (_linkedRecords == null ) _linkedRecords = new DuplicateMap ();
901
+ _linkedRecords .put (record);
902
902
}
903
903
904
904
prev._next = null ;
@@ -1063,13 +1063,13 @@ class _CollectionChangeRecord<V> implements CollectionChangeRecord<V> {
1063
1063
}
1064
1064
1065
1065
// Attempt to see if we have seen the item before.
1066
- record = _movedItems == null ? null : _movedItems .get (item, index);
1066
+ record = _linkedRecords == null ? null : _linkedRecords .get (item, index);
1067
1067
if (record != null ) {
1068
1068
// We have seen this before, we need to move it forward in the collection.
1069
1069
_moveAfter (record, previousRecord, index);
1070
1070
} else {
1071
1071
// Never seen it, check evicted list.
1072
- record = _removedItems == null ? null : _removedItems .get (item);
1072
+ record = _unlinkedRecords == null ? null : _unlinkedRecords .get (item);
1073
1073
if (record != null ) {
1074
1074
// It is an item which we have evicted earlier: reinsert it back into the list.
1075
1075
_reinsertAfter (record, previousRecord, index);
@@ -1108,7 +1108,7 @@ class _CollectionChangeRecord<V> implements CollectionChangeRecord<V> {
1108
1108
* of 'b' rather then switch 'a' with 'b' and then add 'a' at the end.
1109
1109
*/
1110
1110
ItemRecord <V > verifyReinsertion (ItemRecord record, item, int index) {
1111
- ItemRecord <V > reinsertRecord = _removedItems == null ? null : _removedItems .get (item);
1111
+ ItemRecord <V > reinsertRecord = _unlinkedRecords == null ? null : _unlinkedRecords .get (item);
1112
1112
if (reinsertRecord != null ) {
1113
1113
record = _reinsertAfter (reinsertRecord, record._prev, index);
1114
1114
} else if (record.currentIndex != index) {
@@ -1130,7 +1130,7 @@ class _CollectionChangeRecord<V> implements CollectionChangeRecord<V> {
1130
1130
_addToRemovals (_unlink (record));
1131
1131
record = nextRecord;
1132
1132
}
1133
- if (_removedItems != null ) _removedItems .clear ();
1133
+ if (_unlinkedRecords != null ) _unlinkedRecords .clear ();
1134
1134
1135
1135
if (_additionsTail != null ) _additionsTail._nextAdded = null ;
1136
1136
if (_movesTail != null ) _movesTail._nextMoved = null ;
@@ -1139,7 +1139,7 @@ class _CollectionChangeRecord<V> implements CollectionChangeRecord<V> {
1139
1139
}
1140
1140
1141
1141
ItemRecord <V > _reinsertAfter (ItemRecord <V > record, ItemRecord <V > prevRecord, int index) {
1142
- if (_removedItems != null ) _removedItems .remove (record);
1142
+ if (_unlinkedRecords != null ) _unlinkedRecords .remove (record);
1143
1143
var prev = record._prevRemoved;
1144
1144
var next = record._nextRemoved;
1145
1145
@@ -1201,17 +1201,17 @@ class _CollectionChangeRecord<V> implements CollectionChangeRecord<V> {
1201
1201
prevRecord._next = record;
1202
1202
}
1203
1203
1204
- if (_movedItems == null ) _movedItems = new DuplicateMap ();
1204
+ if (_linkedRecords == null ) _linkedRecords = new DuplicateMap ();
1205
+ _linkedRecords.put (record);
1205
1206
1206
- _movedItems.put (record);
1207
1207
record.currentIndex = index;
1208
1208
return record;
1209
1209
}
1210
1210
1211
1211
ItemRecord <V > _remove (ItemRecord record) => _addToRemovals (_unlink (record));
1212
1212
1213
1213
ItemRecord <V > _unlink (ItemRecord record) {
1214
- if (_movedItems != null ) _movedItems .remove (record);
1214
+ if (_linkedRecords != null ) _linkedRecords .remove (record);
1215
1215
1216
1216
var prev = record._prev;
1217
1217
var next = record._next;
@@ -1250,8 +1250,8 @@ class _CollectionChangeRecord<V> implements CollectionChangeRecord<V> {
1250
1250
}
1251
1251
1252
1252
ItemRecord <V > _addToRemovals (ItemRecord <V > record) {
1253
- if (_removedItems == null ) _removedItems = new DuplicateMap ();
1254
- _removedItems .put (record);
1253
+ if (_unlinkedRecords == null ) _unlinkedRecords = new DuplicateMap ();
1254
+ _unlinkedRecords .put (record);
1255
1255
record.currentIndex = null ;
1256
1256
record._nextRemoved = null ;
1257
1257
0 commit comments