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