Index: Source/core/dom/Document.cpp |
diff --git a/Source/core/dom/Document.cpp b/Source/core/dom/Document.cpp |
index ae3bf69eddc38dd82d10f8bc33dd9e4ad868f798..298c602884fe7b76f02d5a09127feda70e1e4d00 100644 |
--- a/Source/core/dom/Document.cpp |
+++ b/Source/core/dom/Document.cpp |
@@ -462,7 +462,9 @@ Document::Document(const DocumentInit& initializer, DocumentClassFlags documentC |
, m_isMobileDocument(false) |
, m_isTransitionDocument(false) |
, m_renderView(0) |
+#if !ENABLE(OILPAN) |
, m_weakFactory(this) |
+#endif |
, m_contextDocument(initializer.contextDocument()) |
, m_hasFullscreenElementStack(false) |
, m_loadEventDelayCount(0) |
@@ -4517,13 +4519,18 @@ Document& Document::topDocument() const |
return *doc; |
} |
-WeakPtr<Document> Document::contextDocument() |
+WeakPtrWillBeRawPtr<Document> Document::contextDocument() |
{ |
if (m_contextDocument) |
return m_contextDocument; |
- if (m_frame) |
+ if (m_frame) { |
+#if ENABLE(OILPAN) |
+ return this; |
+#else |
return m_weakFactory.createWeakPtr(); |
- return WeakPtr<Document>(nullptr); |
+#endif |
+ } |
+ return WeakPtrWillBeRawPtr<Document>(nullptr); |
} |
PassRefPtrWillBeRawPtr<Attr> Document::createAttribute(const AtomicString& name, ExceptionState& exceptionState) |
@@ -5814,6 +5821,7 @@ void Document::trace(Visitor* visitor) |
visitor->trace(m_svgExtensions); |
visitor->trace(m_timeline); |
visitor->trace(m_compositorPendingAnimations); |
+ visitor->trace(m_contextDocument); |
visitor->registerWeakMembers<Document, &Document::clearWeakMembers>(this); |
DocumentSupplementable::trace(visitor); |
TreeScope::trace(visitor); |