Chromium Code Reviews| Index: src/heap-snapshot-generator.cc |
| diff --git a/src/heap-snapshot-generator.cc b/src/heap-snapshot-generator.cc |
| index b23b60f3f537a699735720cfb56b96762b51a58b..f319b166d4fb70b393db093bdb7ac3b884942f4c 100644 |
| --- a/src/heap-snapshot-generator.cc |
| +++ b/src/heap-snapshot-generator.cc |
| @@ -1322,8 +1322,22 @@ void V8HeapExplorer::ExtractMapReferences(int entry, Map* map) { |
| TagObject(back_pointer, "(back pointer)"); |
| SetInternalReference(transitions, transitions_entry, |
| "back_pointer", back_pointer); |
| + |
| + if (FLAG_collect_maps && map->CanTransition()) { |
| + if (!transitions->IsSimpleTransition()) { |
| + if (transitions->HasPrototypeTransitions()) { |
| + FixedArray* prototype_transitions = |
| + transitions->GetPrototypeTransitions(); |
| + MarkAsWeakContainer(prototype_transitions); |
| + TagObject(prototype_transitions, "(prototype transitions array"); |
| + SetInternalReference(transitions, transitions_entry, |
| + "prototype_transitions", prototype_transitions); |
| + } |
| + MarkAsWeakContainer(transitions); |
|
ulan
2014/04/03 13:31:34
MarkTransitionArray visitor also visits Keys.
alph
2014/04/03 14:35:39
yes, I saw that. I'd like to address that in a sep
|
| + } |
| + } |
| + |
| TagObject(transitions, "(transition array)"); |
| - MarkAsWeakContainer(transitions); |
| SetInternalReference(map, entry, |
| "transitions", transitions, |
| Map::kTransitionsOrBackPointerOffset); |