Index: Source/platform/heap/Handle.h |
diff --git a/Source/platform/heap/Handle.h b/Source/platform/heap/Handle.h |
index 8c7cedd603ea3dcde1be702b72970e729aef0f12..06416e3181efda39fcabc7eef6e08e8ceb0b803a 100644 |
--- a/Source/platform/heap/Handle.h |
+++ b/Source/platform/heap/Handle.h |
@@ -701,6 +701,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 |
@@ -713,6 +714,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 |
@@ -742,6 +744,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; |
@@ -756,6 +765,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; |
haraken
2014/04/08 06:02:08
Can we use DEFINE_STATIC_LOCAL instead of using 's
keishi
2014/04/21 17:10:11
Done.
|
+ |
#else // !ENABLE(OILPAN) |
template<typename T> |
@@ -771,6 +783,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 |
@@ -783,6 +796,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 |
@@ -798,6 +812,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 |
@@ -813,6 +828,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(); |
haraken
2014/04/08 06:02:08
Ditto.
keishi
2014/04/21 17:10:11
Done.
|
+ |
#endif // ENABLE(OILPAN) |
} // namespace WebCore |