Commit 4c124982 authored by alph@chromium.org's avatar alph@chromium.org

Do not mark prototype transitions link as weak in heap snapshot.

R=ulan@chromium.org

Review URL: https://codereview.chromium.org/223643004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20490 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent d66c832e
......@@ -1322,8 +1322,23 @@ 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");
SetInternalReference(transitions, transitions_entry,
"prototype_transitions", prototype_transitions);
}
// TODO(alph): transitions keys are strong links.
MarkAsWeakContainer(transitions);
}
}
TagObject(transitions, "(transition array)");
MarkAsWeakContainer(transitions);
SetInternalReference(map, entry,
"transitions", transitions,
Map::kTransitionsOrBackPointerOffset);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment