Index: Source/platform/CrossThreadCopier.h |
diff --git a/Source/platform/CrossThreadCopier.h b/Source/platform/CrossThreadCopier.h |
index a1f593e34c48edfa5132b28b7c595b0961e68641..866da405783f57f536381bdc1d240b81186a0208 100644 |
--- a/Source/platform/CrossThreadCopier.h |
+++ b/Source/platform/CrossThreadCopier.h |
@@ -41,6 +41,7 @@ |
#include "wtf/RefPtr.h" |
#include "wtf/ThreadSafeRefCounted.h" |
#include "wtf/TypeTraits.h" |
+#include "wtf/UnretainedPtr.h" |
namespace blink { |
@@ -152,6 +153,14 @@ namespace blink { |
} |
}; |
+ template<typename T> struct CrossThreadCopierBase<false, false, true, UnretainedPtr<T> > { |
+ typedef RawPtr<T> Type; |
+ static Type copy(const Type& ptr) |
+ { |
+ return ptr; |
+ } |
+ }; |
+ |
template<typename T> struct CrossThreadCopierBase<false, false, true, Member<T> > { |
typedef RawPtr<T> Type; |
static Type copy(const Member<T>& ptr) |
@@ -174,6 +183,7 @@ namespace blink { |
|| WTF::IsSubclassOfTemplate<typename WTF::RemoveTemplate<T, PassRefPtr>::Type, ThreadSafeRefCounted>::value, |
WTF::IsSubclassOfTemplate<typename WTF::RemovePointer<T>::Type, GarbageCollected>::value |
|| WTF::IsSubclassOfTemplate<typename WTF::RemoveTemplate<T, RawPtr>::Type, GarbageCollected>::value |
+ || WTF::IsSubclassOfTemplate<typename WTF::RemoveTemplate<T, UnretainedPtr>::Type, GarbageCollected>::value |
|| WTF::IsSubclassOfTemplate<typename WTF::RemoveTemplate<T, Member>::Type, GarbageCollected>::value |
|| WTF::IsSubclassOfTemplate<typename WTF::RemoveTemplate<T, WeakMember>::Type, GarbageCollected>::value, |
T> { |