Index: runtime/observatory/lib/object_graph.dart |
diff --git a/runtime/observatory/lib/object_graph.dart b/runtime/observatory/lib/object_graph.dart |
index ce6ff65fd53aa2f29edbd40182da49949b693d6d..c2b4169e7d8cbf6ba61e2647b57ec074b0eb8fdd 100644 |
--- a/runtime/observatory/lib/object_graph.dart |
+++ b/runtime/observatory/lib/object_graph.dart |
@@ -16,7 +16,7 @@ class _JenkinsSmiHash { |
} |
static int finish(int hash) { |
- hash = 0x1fffffff & (hash + ((0x03ffffff & hash) << 3)); |
+ hash = 0x1fffffff & (hash + ((0x03ffffff & hash) << 3)); |
hash = hash ^ (hash >> 11); |
return 0x1fffffff & (hash + ((0x00003fff & hash) << 15)); |
} |
@@ -68,7 +68,6 @@ class AddressMapper { |
} |
} |
- |
// Port of dart::ReadStream from vm/datastream.h. |
// |
// The heap snapshot is a series of variable-length unsigned integers. For |
@@ -254,11 +253,13 @@ class ObjectVertex { |
nibble = nibble & 0xF; |
strAddr = nibble.toRadixString(16) + strAddr; |
} |
+ |
combine32(thirtyTwoBits) { |
for (int shift = 0; shift < 32; shift += 4) { |
combine4((thirtyTwoBits >> shift) & 0xF); |
} |
} |
+ |
combine32(low32); |
combine32(high32); |
return strAddr; |
@@ -337,8 +338,8 @@ class _VerticesIterator implements Iterator<ObjectVertex> { |
class ObjectGraph { |
ObjectGraph(List<ByteData> chunks, int nodeCount) |
- : this._chunks = chunks |
- , this._N = nodeCount; |
+ : this._chunks = chunks, |
+ this._N = nodeCount; |
int get size => _size; |
int get vertexCount => _N; |
@@ -349,7 +350,7 @@ class ObjectGraph { |
Iterable<ObjectVertex> getMostRetained({int classId, int limit}) { |
List<ObjectVertex> _mostRetained = |
- new List<ObjectVertex>.from(vertices.where((u) => !u.isRoot)); |
+ new List<ObjectVertex>.from(vertices.where((u) => !u.isRoot)); |
_mostRetained.sort((u, v) => v.retainedSize - u.retainedSize); |
var result = _mostRetained; |
@@ -512,7 +513,7 @@ class ObjectGraph { |
assert(id == N + 1); |
assert(edge <= E); // edge is smaller because E was computed before we knew |
- // if references pointed into the VM isolate |
+ // if references pointed into the VM isolate |
_E = edge; |
_firstSuccs = firstSuccs; |
@@ -604,7 +605,7 @@ class ObjectGraph { |
} |
// Assign indices into predecessors array. |
- var firstPreds = numPreds; // Alias. |
+ var firstPreds = numPreds; // Alias. |
var nextPreds = new Uint32List(N + 1); |
var predIndex = 0; |
for (var i = 1; i <= N; i++) { |
@@ -621,8 +622,8 @@ class ObjectGraph { |
var startSuccIndex = firstSuccs[i]; |
var limitSuccIndex = firstSuccs[i + 1]; |
for (var succIndex = startSuccIndex; |
- succIndex < limitSuccIndex; |
- succIndex++) { |
+ succIndex < limitSuccIndex; |
+ succIndex++) { |
var succId = succs[succIndex]; |
var predIndex = nextPreds[succId]++; |
preds[predIndex] = i; |
@@ -633,12 +634,8 @@ class ObjectGraph { |
_preds = preds; |
} |
- static int _eval(int v, |
- Uint32List ancestor, |
- Uint32List semi, |
- Uint32List label, |
- Uint32List stackNode, |
- Uint8List stackState) { |
+ static int _eval(int v, Uint32List ancestor, Uint32List semi, |
+ Uint32List label, Uint32List stackNode, Uint8List stackState) { |
if (ancestor[v] == 0) { |
return label[v]; |
} else { |
@@ -683,13 +680,8 @@ class ObjectGraph { |
// Note the version in the main text of Lengauer & Tarjan incorrectly |
// uses parent instead of ancestor. The correct version is in Appendix B. |
- static void _link(int v, |
- int w, |
- Uint32List size, |
- Uint32List label, |
- Uint32List semi, |
- Uint32List child, |
- Uint32List ancestor) { |
+ static void _link(int v, int w, Uint32List size, Uint32List label, |
+ Uint32List semi, Uint32List child, Uint32List ancestor) { |
assert(size[0] == 0); |
assert(label[0] == 0); |
assert(semi[0] == 0); |
@@ -751,9 +743,7 @@ class ObjectGraph { |
// Lengauer & Tarjan Step 2. |
var startPred = firstPreds[w]; |
var limitPred = firstPreds[w + 1]; |
- for (var predIndex = startPred; |
- predIndex < limitPred; |
- predIndex++) { |
+ for (var predIndex = startPred; predIndex < limitPred; predIndex++) { |
var v = preds[predIndex]; |
var u = _eval(v, ancestor, semi, label, stackNode, stackState); |
if (semi[u] < semi[w]) { |