| Index: Source/heap/Handle.h
|
| diff --git a/Source/heap/Handle.h b/Source/heap/Handle.h
|
| index 76cda5e75fd506df2d91e9f6b6d8718d20911ed3..9cc3a83a231e64ae52f4243653c36a92dd567553 100644
|
| --- a/Source/heap/Handle.h
|
| +++ b/Source/heap/Handle.h
|
| @@ -676,6 +676,7 @@ template<typename T, typename U> inline bool operator!=(const Persistent<T>& a,
|
| #define RefCountedWillBeRefCountedGarbageCollected WebCore::RefCountedGarbageCollected
|
| #define ThreadSafeRefCountedWillBeGarbageCollected WebCore::GarbageCollected
|
| #define ThreadSafeRefCountedWillBeGarbageCollectedFinalized WebCore::GarbageCollectedFinalized
|
| +#define ThreadSafeRefCountedWillBeThreadSafeRefCountedGarbageCollected WebCore::ThreadSafeRefCountedGarbageCollected
|
| #define RefPtrWillBePersistent WebCore::Persistent
|
| #define RefPtrWillBeRawPtr WTF::RawPtr
|
| #define RefPtrWillBeMember WebCore::Member
|
| @@ -688,6 +689,7 @@ template<typename T, typename U> inline bool operator!=(const Persistent<T>& a,
|
| #define PassOwnPtrWillBeRawPtr WTF::RawPtr
|
| #define NoBaseWillBeGarbageCollected WebCore::GarbageCollected
|
| #define NoBaseWillBeGarbageCollectedFinalized WebCore::GarbageCollectedFinalized
|
| +#define NoBaseWillBeRefCountedGarbageCollected WebCore::RefCountedGarbageCollected
|
| #define WillBeHeapHashMap WebCore::HeapHashMap
|
| #define WillBePersistentHeapHashMap WebCore::PersistentHeapHashMap
|
| #define WillBeHeapHashSet WebCore::HeapHashSet
|
| @@ -717,6 +719,13 @@ template<typename T> PassRefPtrWillBeRawPtr<T> adoptRefWillBeRefCountedGarbageCo
|
| return PassRefPtrWillBeRawPtr<T>(adoptRefCountedGarbageCollected(ptr));
|
| }
|
|
|
| +template<typename T> PassRefPtrWillBeRawPtr<T> adoptRefWillBeThreadSafeRefCountedGarbageCollected(T* ptr)
|
| +{
|
| + static const bool isThreadSafeRefCountedGarbageCollected = WTF::IsSubclassOfTemplate<T, ThreadSafeRefCountedGarbageCollected>::value;
|
| + COMPILE_ASSERT(isThreadSafeRefCountedGarbageCollected, useAdoptRefWillBeNoop);
|
| + return PassRefPtrWillBeRawPtr<T>(adoptRefCountedGarbageCollected(ptr));
|
| +}
|
| +
|
| template<typename T> PassOwnPtrWillBeRawPtr<T> adoptPtrWillBeNoop(T* ptr)
|
| {
|
| static const bool notRefCountedGarbageCollected = !WTF::IsSubclassOfTemplate<T, RefCountedGarbageCollected>::value;
|
| @@ -731,6 +740,9 @@ template<typename T> PassOwnPtrWillBeRawPtr<T> adoptPtrWillBeNoop(T* ptr)
|
| #define DECLARE_EMPTY_VIRTUAL_DESTRUCTOR_WILL_BE_REMOVED(type) // do nothing
|
| #define DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(type) // do nothing
|
|
|
| +#define DEFINE_STATIC_REF_WILL_BE_PERSISTENT(type, name, arguments) \
|
| + static Persistent<type> name = arguments;
|
| +
|
| #else // !ENABLE(OILPAN)
|
|
|
| template<typename T>
|
| @@ -746,6 +758,7 @@ public:
|
| #define RefCountedWillBeRefCountedGarbageCollected WTF::RefCounted
|
| #define ThreadSafeRefCountedWillBeGarbageCollected WTF::ThreadSafeRefCounted
|
| #define ThreadSafeRefCountedWillBeGarbageCollectedFinalized WTF::ThreadSafeRefCounted
|
| +#define ThreadSafeRefCountedWillBeThreadSafeRefCountedGarbageCollected WTF::ThreadSafeRefCounted
|
| #define RefPtrWillBePersistent WTF::RefPtr
|
| #define RefPtrWillBeRawPtr WTF::RefPtr
|
| #define RefPtrWillBeMember WTF::RefPtr
|
| @@ -758,6 +771,7 @@ public:
|
| #define PassOwnPtrWillBeRawPtr WTF::PassOwnPtr
|
| #define NoBaseWillBeGarbageCollected WebCore::DummyBase
|
| #define NoBaseWillBeGarbageCollectedFinalized WebCore::DummyBase
|
| +#define NoBaseWillBeRefCountedGarbageCollected WebCore::DummyBase
|
| #define WillBeHeapHashMap WTF::HashMap
|
| #define WillBePersistentHeapHashMap WTF::HashMap
|
| #define WillBeHeapHashSet WTF::HashSet
|
| @@ -773,6 +787,7 @@ public:
|
|
|
| template<typename T> PassRefPtrWillBeRawPtr<T> adoptRefWillBeNoop(T* ptr) { return adoptRef(ptr); }
|
| template<typename T> PassRefPtrWillBeRawPtr<T> adoptRefWillBeRefCountedGarbageCollected(T* ptr) { return adoptRef(ptr); }
|
| +template<typename T> PassRefPtrWillBeRawPtr<T> adoptRefWillBeThreadSafeRefCountedGarbageCollected(T* ptr) { return adoptRef(ptr); }
|
| template<typename T> PassOwnPtrWillBeRawPtr<T> adoptPtrWillBeNoop(T* ptr) { return adoptPtr(ptr); }
|
|
|
| #define WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED WTF_MAKE_FAST_ALLOCATED
|
| @@ -788,6 +803,9 @@ template<typename T> PassOwnPtrWillBeRawPtr<T> adoptPtrWillBeNoop(T* ptr) { retu
|
| #define DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(type) \
|
| type::~type() { }
|
|
|
| +#define DEFINE_STATIC_REF_WILL_BE_PERSISTENT(type, name, arguments) \
|
| + static type* name = PassRefPtr<type>(arguments).leakRef();
|
| +
|
| #endif // ENABLE(OILPAN)
|
|
|
| } // namespace WebCore
|
|
|