Index: Source/core/page/FrameTree.cpp |
diff --git a/Source/core/page/FrameTree.cpp b/Source/core/page/FrameTree.cpp |
index 1353965dd771ee3fd1349314a778ea4af4f418f9..fa1d27b1974ec8e9e5082fd29ea03ba8bde88abe 100644 |
--- a/Source/core/page/FrameTree.cpp |
+++ b/Source/core/page/FrameTree.cpp |
@@ -50,6 +50,7 @@ FrameTree::FrameTree(Frame* thisFrame) |
FrameTree::~FrameTree() |
{ |
+#if !ENABLE(OILPAN) |
// FIXME: Why is this here? Doesn't this parallel what we already do in ~LocalFrame? |
for (Frame* child = firstChild(); child; child = child->tree().nextSibling()) { |
if (child->isLocalFrame()) |
@@ -57,6 +58,7 @@ FrameTree::~FrameTree() |
else if (child->isRemoteFrame()) |
toRemoteFrame(child)->setView(nullptr); |
} |
+#endif |
} |
void FrameTree::setName(const AtomicString& name, const AtomicString& fallbackName) |
@@ -85,7 +87,7 @@ Frame* FrameTree::top() const |
if (!m_thisFrame->client()) |
return m_thisFrame; |
Frame* candidate = m_thisFrame->client()->top(); |
- return candidate ? candidate : m_thisFrame; |
+ return candidate ? candidate : m_thisFrame.get(); |
} |
Frame* FrameTree::previousSibling() const |
@@ -254,7 +256,7 @@ Frame* FrameTree::find(const AtomicString& name) const |
return top(); |
if (name == "_parent") |
- return parent() ? parent() : m_thisFrame; |
+ return parent() ? parent() : m_thisFrame.get(); |
// Since "_blank" should never be any frame's name, the following just amounts to an optimization. |
if (name == "_blank") |
@@ -377,6 +379,11 @@ Frame* FrameTree::deepLastChild() const |
return result; |
} |
+void FrameTree::trace(Visitor* visitor) |
+{ |
+ visitor->trace(m_thisFrame); |
+} |
+ |
} // namespace blink |
#ifndef NDEBUG |