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 |