Index: Source/core/dom/TreeShared.h |
diff --git a/Source/core/dom/TreeShared.h b/Source/core/dom/TreeShared.h |
index 71a4a5e64580a13d88d6f766a2f0968482098434..65ef726512bdb0b5c1733245811b68d2d6096499 100644 |
--- a/Source/core/dom/TreeShared.h |
+++ b/Source/core/dom/TreeShared.h |
@@ -38,9 +38,6 @@ template<typename NodeType> class TreeShared : public NoBaseWillBeGarbageCollect |
protected: |
TreeShared() |
: m_refCount(1) |
-#if ENABLE(OILPAN) |
- , m_keepAlive(adoptPtr(new Persistent<NodeType>(static_cast<NodeType*>(this)))) |
-#endif |
#if SECURITY_ASSERT_ENABLED |
, m_deletionHasBegun(false) |
#if ASSERT_ENABLED |
@@ -56,11 +53,7 @@ protected: |
{ |
ASSERT(isMainThread()); |
ASSERT(!m_refCount); |
-#if !ENABLE(OILPAN) |
ASSERT_WITH_SECURITY_IMPLICATION(m_deletionHasBegun); |
-#else |
- ASSERT(!m_keepAlive); |
-#endif |
ASSERT(!m_adoptionIsRequired); |
} |
@@ -68,64 +61,33 @@ public: |
void ref() |
{ |
ASSERT(isMainThread()); |
-#if !ENABLE(OILPAN) |
ASSERT_WITH_SECURITY_IMPLICATION(!m_deletionHasBegun); |
ASSERT(!m_inRemovedLastRefFunction); |
-#endif |
ASSERT(!m_adoptionIsRequired); |
++m_refCount; |
-#if ENABLE(OILPAN) |
- if (!m_keepAlive) |
- m_keepAlive = adoptPtr(new Persistent<NodeType>(static_cast<NodeType*>(this))); |
-#endif |
} |
void deref() |
{ |
ASSERT(isMainThread()); |
ASSERT(m_refCount > 0); |
-#if !ENABLE(OILPAN) |
ASSERT_WITH_SECURITY_IMPLICATION(!m_deletionHasBegun); |
ASSERT(!m_inRemovedLastRefFunction); |
-#endif |
ASSERT(!m_adoptionIsRequired); |
NodeType* thisNode = static_cast<NodeType*>(this); |
if (!--m_refCount && !thisNode->hasTreeSharedParent()) { |
#if !ASSERT_DISABLED |
m_inRemovedLastRefFunction = true; |
#endif |
-#if ENABLE(OILPAN) |
- clearKeepAlive(); |
-#endif |
thisNode->removedLastRef(); |
} |
} |
int refCount() const { return m_refCount; } |
-#if ENABLE(OILPAN) |
- void clearKeepAlive() |
- { |
- ASSERT(m_keepAlive); |
- m_keepAlive = nullptr; |
- } |
-#endif |
- |
private: |
int m_refCount; |
-#if ENABLE(OILPAN) |
- // With Oilpan, a non-zero reference count will keep the TreeShared object alive |
- // with a self-persistent handle. Whenever the ref count goes above zero |
- // we register the TreeShared as a root for garbage collection by allocating a |
- // persistent handle to the object itself. When the ref count goes to zero |
- // we deallocate the persistent handle again so the object can die if there |
- // are no other things keeping it alive. |
- // |
- // FIXME: Oilpan: Remove m_keepAlive and ref counting and use tracing instead. |
- OwnPtr<Persistent<NodeType> > m_keepAlive; |
-#endif |
- |
#if SECURITY_ASSERT_ENABLED |
public: |
bool m_deletionHasBegun; |