Index: third_party/WebKit/Source/platform/heap/GarbageCollected.h |
diff --git a/third_party/WebKit/Source/platform/heap/GarbageCollected.h b/third_party/WebKit/Source/platform/heap/GarbageCollected.h |
index 958040419d31ab042f356f5677d3d7c6067d22dc..182a0443113b0a28832f64e76969e86ba1426dfe 100644 |
--- a/third_party/WebKit/Source/platform/heap/GarbageCollected.h |
+++ b/third_party/WebKit/Source/platform/heap/GarbageCollected.h |
@@ -273,86 +273,6 @@ protected: |
template<typename U, bool> friend struct FinalizerTraitImpl; |
}; |
-// Base class for objects that are in the Blink garbage-collected heap |
-// and are still reference counted. |
-// |
-// This class should be used sparingly and only to gradually move |
-// objects from being reference counted to being managed by the blink |
-// garbage collector. |
-// |
-// While the current reference counting keeps one of these objects |
-// alive it will have a Persistent handle to itself allocated so we |
-// will not reclaim the memory. When the reference count reaches 0 the |
-// persistent handle will be deleted. When the garbage collector |
-// determines that there are no other references to the object it will |
-// be reclaimed and the destructor of the reclaimed object will be |
-// called at that time. |
-template<typename T> |
-class RefCountedGarbageCollected : public GarbageCollectedFinalized<T> { |
- WTF_MAKE_NONCOPYABLE(RefCountedGarbageCollected); |
- |
-public: |
- RefCountedGarbageCollected() |
- : m_refCount(0) |
- { |
- } |
- |
- // Implement method to increase reference count for use with RefPtrs. |
- // |
- // In contrast to the normal WTF::RefCounted, the reference count can reach |
- // 0 and increase again. This happens in the following scenario: |
- // |
- // (1) The reference count becomes 0, but members, persistents, or |
- // on-stack pointers keep references to the object. |
- // |
- // (2) The pointer is assigned to a RefPtr again and the reference |
- // count becomes 1. |
- // |
- // In this case, we have to resurrect m_keepAlive. |
- void ref() |
- { |
- if (UNLIKELY(!m_refCount)) { |
- ASSERT(ThreadState::current()->findPageFromAddress(reinterpret_cast<Address>(this))); |
- makeKeepAlive(); |
- } |
- ++m_refCount; |
- } |
- |
- // Implement method to decrease reference count for use with RefPtrs. |
- // |
- // In contrast to the normal WTF::RefCounted implementation, the |
- // object itself is not deleted when the reference count reaches |
- // 0. Instead, the keep-alive persistent handle is deallocated so |
- // that the object can be reclaimed when the garbage collector |
- // determines that there are no other references to the object. |
- void deref() |
- { |
- ASSERT(m_refCount > 0); |
- if (!--m_refCount) { |
- delete m_keepAlive; |
- m_keepAlive = 0; |
- } |
- } |
- |
- bool hasOneRef() |
- { |
- return m_refCount == 1; |
- } |
- |
-protected: |
- ~RefCountedGarbageCollected() { } |
- |
-private: |
- void makeKeepAlive() |
- { |
- ASSERT(!m_keepAlive); |
- m_keepAlive = new Persistent<T>(static_cast<T*>(this)); |
- } |
- |
- int m_refCount; |
- Persistent<T>* m_keepAlive; |
-}; |
- |
template<typename T, bool = WTF::IsSubclassOfTemplate<typename std::remove_const<T>::type, GarbageCollected>::value> class NeedsAdjustAndMark; |
template<typename T> |
@@ -390,10 +310,6 @@ public: |
namespace WTF { |
-// Adoption is not needed nor wanted for RefCountedGarbageCollected<>-derived types. |
-template<typename T> |
-PassRefPtr<T> adoptRef(blink::RefCountedGarbageCollected<T>*) = delete; |
- |
} // namespace WTF |
#endif |