| Index: Source/platform/heap/Heap.h
|
| diff --git a/Source/platform/heap/Heap.h b/Source/platform/heap/Heap.h
|
| index 0b1e891d2f1e70a9d12b7d8407b2456f3a5896f9..7ebe049abeae0038c20a13a83a0e70398ed08410 100644
|
| --- a/Source/platform/heap/Heap.h
|
| +++ b/Source/platform/heap/Heap.h
|
| @@ -682,61 +682,6 @@ public:
|
|
|
| class HeapDoesNotContainCache : public HeapExtentCache<NegativeEntry> { };
|
|
|
| -// FIXME: This is currently used by the WebAudio code.
|
| -// We should attempt to restructure the WebAudio code so that the main thread
|
| -// alone determines life-time and receives messages about life-time from the
|
| -// audio thread.
|
| -template<typename T>
|
| -class ThreadSafeRefCountedGarbageCollected : public GarbageCollectedFinalized<T>, public WTF::ThreadSafeRefCountedBase {
|
| - WTF_MAKE_NONCOPYABLE(ThreadSafeRefCountedGarbageCollected);
|
| -
|
| -public:
|
| - ThreadSafeRefCountedGarbageCollected()
|
| - {
|
| - makeKeepAlive();
|
| - }
|
| -
|
| - // Override ref to deal with a case where a reference count goes up
|
| - // from 0 to 1. This can happen in the following scenario:
|
| - // (1) The reference count becomes 0, but on-stack pointers keep references to the object.
|
| - // (2) The on-stack pointer is assigned to a RefPtr. The reference count becomes 1.
|
| - // In this case, we have to resurrect m_keepAlive.
|
| - void ref()
|
| - {
|
| - MutexLocker lock(m_mutex);
|
| - if (UNLIKELY(!refCount())) {
|
| - makeKeepAlive();
|
| - }
|
| - WTF::ThreadSafeRefCountedBase::ref();
|
| - }
|
| -
|
| - // Override deref to deal with our own deallocation based on ref counting.
|
| - void deref()
|
| - {
|
| - MutexLocker lock(m_mutex);
|
| - if (derefBase()) {
|
| - ASSERT(m_keepAlive);
|
| - m_keepAlive.clear();
|
| - }
|
| - }
|
| -
|
| - using GarbageCollectedFinalized<T>::operator new;
|
| - using GarbageCollectedFinalized<T>::operator delete;
|
| -
|
| -protected:
|
| - ~ThreadSafeRefCountedGarbageCollected() { }
|
| -
|
| -private:
|
| - void makeKeepAlive()
|
| - {
|
| - ASSERT(!m_keepAlive);
|
| - m_keepAlive = adoptPtr(new CrossThreadPersistent<T>(static_cast<T*>(this)));
|
| - }
|
| -
|
| - OwnPtr<CrossThreadPersistent<T> > m_keepAlive;
|
| - mutable Mutex m_mutex;
|
| -};
|
| -
|
| template<typename DataType>
|
| class PagePool {
|
| protected:
|
| @@ -1232,9 +1177,8 @@ class RefCountedGarbageCollected : public GarbageCollectedFinalized<T> {
|
|
|
| public:
|
| RefCountedGarbageCollected()
|
| - : m_refCount(1)
|
| + : m_refCount(0)
|
| {
|
| - makeKeepAlive();
|
| }
|
|
|
| // Implement method to increase reference count for use with
|
| @@ -1296,15 +1240,6 @@ private:
|
| Persistent<T>* m_keepAlive;
|
| };
|
|
|
| -template<typename T>
|
| -T* adoptRefCountedGarbageCollected(T* ptr)
|
| -{
|
| - ASSERT(ptr->hasOneRef());
|
| - ptr->deref();
|
| - WTF::adopted(ptr);
|
| - return ptr;
|
| -}
|
| -
|
| // Classes that contain heap references but aren't themselves heap
|
| // allocated, have some extra macros available which allows their use
|
| // to be restricted to cases where the garbage collector is able
|
|
|