| Index: runtime/observatory/lib/src/service/object.dart
|
| diff --git a/runtime/observatory/lib/src/service/object.dart b/runtime/observatory/lib/src/service/object.dart
|
| index d2c970371707dacb378dfda71c53e6431c451d37..fb00c27baee61161b2ecffc41b360a5429dda951 100644
|
| --- a/runtime/observatory/lib/src/service/object.dart
|
| +++ b/runtime/observatory/lib/src/service/object.dart
|
| @@ -788,11 +788,16 @@ class HeapSnapshot {
|
|
|
| List<Future<ServiceObject>> getMostRetained({int classId, int limit}) {
|
| var result = [];
|
| - for (var v in graph.getMostRetained(classId: classId, limit: limit)) {
|
| - var address = v.addressForWordSize(isolate.vm.architectureBits ~/ 8);
|
| - result.add(isolate.getObjectByAddress(address.toRadixString(16)).then((obj) {
|
| - obj.retainedSize = v.retainedSize;
|
| - return new Future(() => obj);
|
| + for (ObjectVertex v in graph.getMostRetained(classId: classId,
|
| + limit: limit)) {
|
| + result.add(isolate.getObjectByAddress(v.address.toRadixString(16))
|
| + .then((ServiceObject obj) {
|
| + if (obj is Instance) {
|
| + // TODO(rmacnak): size/retainedSize are properties of all heap
|
| + // objects, not just Instances.
|
| + obj.retainedSize = v.retainedSize;
|
| + }
|
| + return obj;
|
| }));
|
| }
|
| return result;
|
|
|