Index: src/profile-generator.cc |
diff --git a/src/profile-generator.cc b/src/profile-generator.cc |
index c91e83bb78fe37cc2c75933e297e2f70a1c788d6..821b1d08429b0f75c874474cc5a8158073dfd5ed 100644 |
--- a/src/profile-generator.cc |
+++ b/src/profile-generator.cc |
@@ -2146,10 +2146,16 @@ void V8HeapExplorer::ExtractMapReferences(HeapEntry* entry, Map* map) { |
"descriptors", map->instance_descriptors(), |
Map::kInstanceDescriptorsOrBitField3Offset); |
} |
- TagObject(map->prototype_transitions(), "(prototype transitions)"); |
- SetInternalReference(map, entry, |
- "prototype_transitions", map->prototype_transitions(), |
- Map::kPrototypeTransitionsOffset); |
+ if (map->unchecked_prototype_transitions()->IsFixedArray()) { |
+ TagObject(map->prototype_transitions(), "(prototype transitions)"); |
+ SetInternalReference(map, entry, |
+ "prototype_transitions", map->prototype_transitions(), |
+ Map::kPrototypeTransitionsOrBackPointerOffset); |
+ } else { |
+ SetInternalReference(map, entry, |
+ "back_pointer", map->GetBackPointer(), |
+ Map::kPrototypeTransitionsOrBackPointerOffset); |
+ } |
SetInternalReference(map, entry, |
"code_cache", map->code_cache(), |
Map::kCodeCacheOffset); |