Skip to content
This repository was archived by the owner on Feb 22, 2018. It is now read-only.

Commit 9061ffb

Browse files
vicbchirayuk
authored andcommitted
refactor(dccd): Drop the insertBefore arg from DuplicateMap.put()
Fixes #1128 Closes #1132 The insertBefore argument is never used in the current code
1 parent e4cbb57 commit 9061ffb

File tree

1 file changed

+10
-28
lines changed

1 file changed

+10
-28
lines changed

lib/change_detection/dirty_checking_change_detector.dart

+10-28
Original file line numberDiff line numberDiff line change
@@ -1300,40 +1300,22 @@ class _DuplicateItemRecordList {
13001300
ItemRecord _head, _tail;
13011301

13021302
/**
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.
13051304
*
13061305
* Note: by design all records in the list of duplicates hold the save value in [record.item].
13071306
*/
1308-
void add(ItemRecord record, ItemRecord insertBefore) {
1309-
assert(insertBefore == null || insertBefore.item == record.item);
1307+
void add(ItemRecord record) {
13101308
if (_head == null) {
1311-
/// pushing the first [ItemRecord] to the list
1312-
assert(insertBefore == null);
13131309
_head = _tail = record;
13141310
record._nextDup = null;
13151311
record._prevDup = null;
13161312
} else {
1317-
// adding a duplicate [ItemRecord] to the list
13181313
assert(record.item == _head.item ||
13191314
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;
13371319
}
13381320
}
13391321

@@ -1387,16 +1369,16 @@ class _DuplicateItemRecordList {
13871369
* The list of duplicates is implemented by [_DuplicateItemRecordList].
13881370
*/
13891371
class DuplicateMap {
1390-
static final nanKey = const Object();
1372+
static final _nanKey = const Object();
13911373
final map = new HashMap<dynamic, _DuplicateItemRecordList>();
13921374

1393-
void put(ItemRecord record, [ItemRecord insertBefore = null]) {
1375+
void put(ItemRecord record) {
13941376
var key = _getKey(record.item);
13951377
_DuplicateItemRecordList duplicates = map[key];
13961378
if (duplicates == null) {
13971379
duplicates = map[key] = new _DuplicateItemRecordList();
13981380
}
1399-
duplicates.add(record, insertBefore);
1381+
duplicates.add(record);
14001382
}
14011383

14021384
/**
@@ -1433,7 +1415,7 @@ class DuplicateMap {
14331415
}
14341416

14351417
/// 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;
14371419

14381420
String toString() => "DuplicateMap($map)";
14391421
}

0 commit comments

Comments
 (0)