Index: src/heap-snapshot-generator.cc |
diff --git a/src/heap-snapshot-generator.cc b/src/heap-snapshot-generator.cc |
index 2809072c9c9521aa21a96666d17da24cfd94ed3c..6fb68702fdc2a28ca2e02a783c1b2b6f3a19b58c 100644 |
--- a/src/heap-snapshot-generator.cc |
+++ b/src/heap-snapshot-generator.cc |
@@ -1286,30 +1286,27 @@ |
void V8HeapExplorer::ExtractMapReferences(int entry, Map* map) { |
- Object* raw_transitions = map->raw_transitions(); |
- if (TransitionArray::IsFullTransitionArray(raw_transitions)) { |
- TransitionArray* transitions = TransitionArray::cast(raw_transitions); |
+ if (map->HasTransitionArray()) { |
+ TransitionArray* transitions = map->transitions(); |
int transitions_entry = GetEntry(transitions)->index(); |
if (FLAG_collect_maps && map->CanTransition()) { |
- if (transitions->HasPrototypeTransitions()) { |
- FixedArray* prototype_transitions = |
- transitions->GetPrototypeTransitions(); |
- MarkAsWeakContainer(prototype_transitions); |
- TagObject(prototype_transitions, "(prototype transitions"); |
- SetInternalReference(transitions, transitions_entry, |
- "prototype_transitions", prototype_transitions); |
+ if (!transitions->IsSimpleTransition()) { |
+ if (transitions->HasPrototypeTransitions()) { |
+ FixedArray* prototype_transitions = |
+ transitions->GetPrototypeTransitions(); |
+ MarkAsWeakContainer(prototype_transitions); |
+ TagObject(prototype_transitions, "(prototype transitions"); |
+ SetInternalReference(transitions, transitions_entry, |
+ "prototype_transitions", prototype_transitions); |
+ } |
+ // TODO(alph): transitions keys are strong links. |
+ MarkAsWeakContainer(transitions); |
} |
- // TODO(alph): transitions keys are strong links. |
- MarkAsWeakContainer(transitions); |
} |
TagObject(transitions, "(transition array)"); |
SetInternalReference(map, entry, "transitions", transitions, |
- Map::kTransitionsOffset); |
- } else if (TransitionArray::IsSimpleTransition(raw_transitions)) { |
- TagObject(raw_transitions, "(transition)"); |
- SetInternalReference(map, entry, "transition", raw_transitions, |
Map::kTransitionsOffset); |
} |
DescriptorArray* descriptors = map->instance_descriptors(); |