@@ -1303,40 +1303,22 @@ class _DuplicateItemRecordList {
1303
1303
ItemRecord _head, _tail;
1304
1304
1305
1305
/**
1306
- * Add the [record] before the [insertBefore] in the list of duplicates or at the end of the list
1307
- * when no [insertBefore] is specified.
1306
+ * Append the [record] to the list of duplicates.
1308
1307
*
1309
1308
* Note: by design all records in the list of duplicates hold the save value in [record.item] .
1310
1309
*/
1311
- void add (ItemRecord record, ItemRecord insertBefore) {
1312
- assert (insertBefore == null || insertBefore.item == record.item);
1310
+ void add (ItemRecord record) {
1313
1311
if (_head == null ) {
1314
- /// pushing the first [ItemRecord] to the list
1315
- assert (insertBefore == null );
1316
1312
_head = _tail = record;
1317
1313
record._nextDup = null ;
1318
1314
record._prevDup = null ;
1319
1315
} else {
1320
- // adding a duplicate [ItemRecord] to the list
1321
1316
assert (record.item == _head.item ||
1322
1317
record.item is num && record.item.isNaN && _head.item is num && _head.item.isNaN);
1323
- if (insertBefore == null ) {
1324
- _tail._nextDup = record;
1325
- record._prevDup = _tail;
1326
- record._nextDup = null ;
1327
- _tail = record;
1328
- } else {
1329
- var prev = insertBefore._prevDup;
1330
- var next = insertBefore;
1331
- record._prevDup = prev;
1332
- record._nextDup = next;
1333
- if (prev == null ) {
1334
- _head = record;
1335
- } else {
1336
- prev._nextDup = record;
1337
- }
1338
- next._prevDup = record;
1339
- }
1318
+ _tail._nextDup = record;
1319
+ record._prevDup = _tail;
1320
+ record._nextDup = null ;
1321
+ _tail = record;
1340
1322
}
1341
1323
}
1342
1324
@@ -1390,16 +1372,16 @@ class _DuplicateItemRecordList {
1390
1372
* The list of duplicates is implemented by [_DuplicateItemRecordList] .
1391
1373
*/
1392
1374
class DuplicateMap {
1393
- static final nanKey = const Object ();
1375
+ static final _nanKey = const Object ();
1394
1376
final map = new HashMap <dynamic , _DuplicateItemRecordList >();
1395
1377
1396
- void put (ItemRecord record, [ ItemRecord insertBefore = null ] ) {
1378
+ void put (ItemRecord record) {
1397
1379
var key = _getKey (record.item);
1398
1380
_DuplicateItemRecordList duplicates = map[key];
1399
1381
if (duplicates == null ) {
1400
1382
duplicates = map[key] = new _DuplicateItemRecordList ();
1401
1383
}
1402
- duplicates.add (record, insertBefore );
1384
+ duplicates.add (record);
1403
1385
}
1404
1386
1405
1387
/**
@@ -1436,7 +1418,7 @@ class DuplicateMap {
1436
1418
}
1437
1419
1438
1420
/// Required to handle num.NAN as a Map value
1439
- dynamic _getKey (value) => value is num && value.isNaN ? nanKey : value;
1421
+ dynamic _getKey (value) => value is num && value.isNaN ? _nanKey : value;
1440
1422
1441
1423
String toString () => "DuplicateMap($map )" ;
1442
1424
}
0 commit comments