| Index: src/heap-snapshot-generator.cc
|
| diff --git a/src/heap-snapshot-generator.cc b/src/heap-snapshot-generator.cc
|
| index 929064489bc2115bc0bdaf009cb0cde42b290a46..a97e4cf328961354b2c7c68b401024cc395c321e 100644
|
| --- a/src/heap-snapshot-generator.cc
|
| +++ b/src/heap-snapshot-generator.cc
|
| @@ -1282,9 +1282,11 @@ void V8HeapExplorer::ExtractContextReferences(int entry, Context* context) {
|
|
|
|
|
| void V8HeapExplorer::ExtractMapReferences(int entry, Map* map) {
|
| - Object* raw_transitions = map->raw_transitions();
|
| - if (TransitionArray::IsFullTransitionArray(raw_transitions)) {
|
| - TransitionArray* transitions = TransitionArray::cast(raw_transitions);
|
| + Object* raw_transitions_or_prototype_info = map->raw_transitions();
|
| + if (TransitionArray::IsFullTransitionArray(
|
| + raw_transitions_or_prototype_info)) {
|
| + TransitionArray* transitions =
|
| + TransitionArray::cast(raw_transitions_or_prototype_info);
|
| int transitions_entry = GetEntry(transitions)->index();
|
|
|
| if (FLAG_collect_maps && map->CanTransition()) {
|
| @@ -1302,11 +1304,18 @@ void V8HeapExplorer::ExtractMapReferences(int entry, Map* map) {
|
|
|
| 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);
|
| + Map::kTransitionsOrPrototypeInfoOffset);
|
| + } else if (TransitionArray::IsSimpleTransition(
|
| + raw_transitions_or_prototype_info)) {
|
| + TagObject(raw_transitions_or_prototype_info, "(transition)");
|
| + SetInternalReference(map, entry, "transition",
|
| + raw_transitions_or_prototype_info,
|
| + Map::kTransitionsOrPrototypeInfoOffset);
|
| + } else if (map->is_prototype_map()) {
|
| + TagObject(raw_transitions_or_prototype_info, "prototype_info");
|
| + SetInternalReference(map, entry, "prototype_info",
|
| + raw_transitions_or_prototype_info,
|
| + Map::kTransitionsOrPrototypeInfoOffset);
|
| }
|
| DescriptorArray* descriptors = map->instance_descriptors();
|
| TagObject(descriptors, "(map descriptors)");
|
|
|