| Index: src/profile-generator.cc
|
| diff --git a/src/profile-generator.cc b/src/profile-generator.cc
|
| index 1a4139642c9e1a6a65edf12fc0d4a2b8fa627884..87b91e31299bbd645f6c8d627c5169163bc3324e 100644
|
| --- a/src/profile-generator.cc
|
| +++ b/src/profile-generator.cc
|
| @@ -2007,11 +2007,21 @@ void V8HeapExplorer::ExtractMapReferences(int entry, Map* map) {
|
| SetInternalReference(map, entry,
|
| "constructor", map->constructor(),
|
| Map::kConstructorOffset);
|
| - if (!map->instance_descriptors()->IsEmpty()) {
|
| - TagObject(map->instance_descriptors(), "(map descriptors)");
|
| - // TODO(verwaest): Check what to do here.
|
| + if (map->HasTransitionArray()) {
|
| + TransitionArray* transitions = map->transitions();
|
| + if (!transitions->descriptors()->IsEmpty()) {
|
| + DescriptorArray* descriptors = transitions->descriptors();
|
| + TagObject(descriptors, "(map descriptors)");
|
| + SetInternalReference(transitions, entry,
|
| + "descriptors", descriptors,
|
| + TransitionArray::kDescriptorsOffset);
|
| + IndexedReferencesExtractor refs_extractor(
|
| + this, transitions, entry);
|
| + transitions->Iterate(&refs_extractor);
|
| + }
|
| + TagObject(transitions, "(transition array)");
|
| SetInternalReference(map, entry,
|
| - "descriptors", map->instance_descriptors(),
|
| + "transitions", transitions,
|
| Map::kTransitionsOrBackPointerOffset);
|
| }
|
| SetInternalReference(map, entry,
|
|
|