Commit 21f8e491 authored by yurys@chromium.org's avatar yurys@chromium.org

Simplify HeapSnapshotFilteredOrderedIterator implementation

Introduced filtered iterator and iterator over array of indexes. This allowed to decompose HeapSnapshotFilteredOrderedIterator.

BUG=None
R=alph@chromium.org

Review URL: https://codereview.chromium.org/205993003

git-svn-id: svn://svn.chromium.org/blink/trunk@169650 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent e77c8b3a
...@@ -315,14 +315,20 @@ function test() ...@@ -315,14 +315,20 @@ function test()
return node.type() === "object" && node.name() !== "B" && node.name() !== "D"; return node.type() === "object" && node.name() !== "B" && node.name() !== "D";
} }
var provider = new WebInspector.HeapSnapshotNodesProvider(snapshot, nodeFilter); var allNodeIndexes = [];
for (var i = 0; i < snapshot._nodes.length; i += snapshot._nodeFieldCount)
allNodeIndexes.push(i);
var provider = new WebInspector.HeapSnapshotNodesProvider(snapshot, nodeFilter, allNodeIndexes);
// Sort by names in reverse order. // Sort by names in reverse order.
InspectorTest.assertEquals(3, provider.length, "nodes provider length"); provider.sortAndRewind({fieldName1: "name", ascending1: false, fieldName2: "id", ascending2: false});
provider.sort({fieldName1: "name", ascending1: false, fieldName2: "id", ascending2: false}, 0, 2, 3); var range = provider.serializeItemsRange(0, 3);
InspectorTest.assertEquals(3, provider.length, "nodes provider length"); InspectorTest.assertEquals(3, range.totalLength, "Node range total length");
var names = []; InspectorTest.assertEquals(0, range.startPosition, "Node range start position");
for (provider.rewind(); provider.hasNext(); provider.next()) InspectorTest.assertEquals(3, range.endPosition, "Node range end position");
names.push(provider.item().name()); var names = range.items.map(function(item)
{
return item.name;
});
InspectorTest.assertEquals("E,C,A", names.join(","), "nodes provider names"); InspectorTest.assertEquals("E,C,A", names.join(","), "nodes provider names");
}, },
...@@ -336,12 +342,15 @@ function test() ...@@ -336,12 +342,15 @@ function test()
} }
var provider = snapshot.createEdgesProviderForTest(snapshot.rootNodeIndex, edgeFilter); var provider = snapshot.createEdgesProviderForTest(snapshot.rootNodeIndex, edgeFilter);
InspectorTest.assertEquals(1, provider.length, "edges provider length"); provider.sortAndRewind({fieldName1: "!edgeName", ascending1: false, fieldName2: "id", ascending2: false});
provider.sort({fieldName1: "!edgeName", ascending1: false, fieldName2: "id", ascending2: false}, 0, 0, 1); var range = provider.serializeItemsRange(0, 10);
InspectorTest.assertEquals(1, provider.length, "edges provider length"); InspectorTest.assertEquals(1, range.totalLength, "Edge range total length");
var names = []; InspectorTest.assertEquals(0, range.startPosition, "Edge range start position");
for (provider.rewind(); provider.hasNext(); provider.next()) InspectorTest.assertEquals(1, range.endPosition, "Edge range end position");
names.push(provider.item().name()); var names = range.items.map(function(item)
{
return item.name;
});
InspectorTest.assertEquals("b", names.join(","), "edges provider names"); InspectorTest.assertEquals("b", names.join(","), "edges provider names");
}, },
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment