Reformat some files in the heap_snapshot package.

This will avoid some merge conflicts in a follow-up CL I'm working on
that will enable the lints `unnecessary_type_name_in_constructor` and
`unnecessary_const_in_enum_constructor` (and will fix declarations
accordingly).

Change-Id: I0a8f660c3c4d722dbeda440009e565f96a6a6964
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/505047
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
This commit is contained in:
Paul Berry
2026-05-22 08:37:53 -07:00
committed by dart-scoped@luci-project-accounts.iam.gserviceaccount.com
parent f46967d5c4
commit 7df8468b52
2 changed files with 58 additions and 34 deletions
+57 -33
View File
@@ -36,13 +36,19 @@ class Analysis {
late final _finalizerEntryCid = _findClassId('FinalizerEntry');
late final _weakPropertyKeyIdx = _findFieldIndex(_weakPropertyCid, 'key_');
late final _weakPropertyValueIdx =
_findFieldIndex(_weakPropertyCid, 'value_');
late final _weakPropertyValueIdx = _findFieldIndex(
_weakPropertyCid,
'value_',
);
late final _finalizerEntryDetachIdx =
_findFieldIndex(_finalizerEntryCid, 'detach_');
late final _finalizerEntryValueIdx =
_findFieldIndex(_finalizerEntryCid, 'value_');
late final _finalizerEntryDetachIdx = _findFieldIndex(
_finalizerEntryCid,
'detach_',
);
late final _finalizerEntryValueIdx = _findFieldIndex(
_finalizerEntryCid,
'value_',
);
late final _Arch _arch = (() {
// We want to figure out the architecture this heapsnapshot was made from
@@ -53,7 +59,8 @@ class Analysis {
// -> PatchClass seems to satisfy this.
final size = graph.objects
.firstWhere(
(obj) => obj.classId == _patchClassCid && obj.shallowSize != 0)
(obj) => obj.classId == _patchClassCid && obj.shallowSize != 0,
)
.shallowSize;
switch (size) {
@@ -168,7 +175,10 @@ class Analysis {
}
}
return ObjectInformation(
klass.name, klass.libraryUri.toString(), fieldValues);
klass.name,
klass.libraryUri.toString(),
fieldValues,
);
}
/// Generates statistics about the given set of [objects].
@@ -195,8 +205,9 @@ class Analysis {
if (diff != 0) return diff;
diff = counts[b.classId] - counts[a.classId];
if (diff != 0) return diff;
return graph.classes[b.classId].name
.compareTo(graph.classes[a.classId].name);
return graph.classes[b.classId].name.compareTo(
graph.classes[a.classId].name,
);
});
} else {
classes.sort((a, b) {
@@ -204,8 +215,9 @@ class Analysis {
if (diff != 0) return diff;
diff = sizes[b.classId] - sizes[a.classId];
if (diff != 0) return diff;
return graph.classes[b.classId].name
.compareTo(graph.classes[a.classId].name);
return graph.classes[b.classId].name.compareTo(
graph.classes[a.classId].name,
);
});
}
@@ -268,7 +280,9 @@ class Analysis {
if (cid == _weakPropertyCid) {
if (tfilter == null ||
tfilter._shouldTraverseEdge(
_weakPropertyCid, _weakPropertyValueIdx)) {
_weakPropertyCid,
_weakPropertyValueIdx,
)) {
weakProperties.add(objectIdToExpand);
}
continue;
@@ -372,7 +386,7 @@ class Analysis {
final index = predecessor.references.indexOf(objectIdToExpand);
passedFilter =
(tfilter._shouldTraverseEdge(predecessor.classId, index) &&
tfilter._shouldIncludeObject(predecessor.classId));
tfilter._shouldIncludeObject(predecessor.classId));
}
if (passedFilter) {
reachable.add(predecessorId);
@@ -409,9 +423,11 @@ class Analysis {
final classes = graph.classes;
final cids = IntSet();
for (final klass in classes) {
if (regexPatterns.any((pattern) =>
pattern.hasMatch(klass.name) ||
pattern.hasMatch(klass.libraryUri.toString()))) {
if (regexPatterns.any(
(pattern) =>
pattern.hasMatch(klass.name) ||
pattern.hasMatch(klass.libraryUri.toString()),
)) {
cids.add(klass.classId);
}
}
@@ -514,7 +530,8 @@ class Analysis {
if (tfilter != null) {
final user = objects[userId];
final idx = user.references.indexOf(objId);
passedFilter = tfilter._shouldTraverseEdge(user.classId, idx) &&
passedFilter =
tfilter._shouldTraverseEdge(user.classId, idx) &&
tfilter._shouldIncludeObject(user.classId);
}
if (passedFilter) {
@@ -539,7 +556,8 @@ class Analysis {
bool passedFilter = true;
if (tfilter != null) {
final other = objects[refId];
passedFilter = tfilter._shouldTraverseEdge(object.classId, i) &&
passedFilter =
tfilter._shouldTraverseEdge(object.classId, i) &&
tfilter._shouldIncludeObject(other.classId);
}
if (passedFilter) {
@@ -580,8 +598,9 @@ class Analysis {
// - String has: header, length (hash - on 32-bit platforms) + payload
final fixedSize =
_headerSize + _wordSize * (_arch == _Arch.arch32 ? 2 : 1);
final len =
object.shallowSize == 0 ? 0 : (object.shallowSize - fixedSize);
final len = object.shallowSize == 0
? 0
: (object.shallowSize - fixedSize);
if (len < 128) return (object.data as String).length;
return len; // Over-approximates to 2 * wordsize.
}
@@ -620,10 +639,12 @@ class Analysis {
int _findClassId(String className) {
return graph.classes
.singleWhere((klass) =>
klass.name == className &&
(klass.libraryUri.scheme == 'dart' ||
klass.libraryUri.toString() == ''))
.singleWhere(
(klass) =>
klass.name == className &&
(klass.libraryUri.scheme == 'dart' ||
klass.libraryUri.toString() == ''),
)
.classId;
}
@@ -760,8 +781,14 @@ class TraverseFilter {
final Map<int, IntSet>? _followMap;
final Map<int, IntSet>? _notFollowMap;
const TraverseFilter._(this._patterns, this._bits, this._allowed,
this._disallowed, this._followMap, this._notFollowMap);
const TraverseFilter._(
this._patterns,
this._bits,
this._allowed,
this._disallowed,
this._followMap,
this._notFollowMap,
);
bool get _hasPositiveClassPattern =>
(_bits & _hasPositiveClassPatternBit) != 0;
@@ -770,7 +797,8 @@ class TraverseFilter {
String asString(HeapSnapshotGraph graph) {
final sb = StringBuffer();
sb.writeln(
'The traverse filter expression "${_patterns.join(' ')}" matches:\n');
'The traverse filter expression "${_patterns.join(' ')}" matches:\n',
);
final ca = _allowed ?? IntSet();
final cna = _disallowed ?? IntSet();
@@ -1006,8 +1034,4 @@ class DedupedUint32List {
}
}
enum _Arch {
arch32,
arch64,
arch64c,
}
enum _Arch { arch32, arch64, arch64c }
+1 -1
View File
@@ -26,7 +26,7 @@ class SpecializedIntSet extends SetBase<int> {
int _length = 0;
SpecializedIntSet(this.maxLength)
: _data = Uint32List((maxLength + 31) ~/ 32);
: _data = Uint32List((maxLength + 31) ~/ 32);
@override
Iterator<int> get iterator => _SpecializedIntSetIterator(this);