Index: trunk/Source/platform/CrossThreadCopier.h |
=================================================================== |
--- trunk/Source/platform/CrossThreadCopier.h (revision 175241) |
+++ trunk/Source/platform/CrossThreadCopier.h (working copy) |
@@ -32,7 +32,6 @@ |
#define CrossThreadCopier_h |
#include "platform/PlatformExport.h" |
-#include "platform/heap/Handle.h" |
#include "wtf/Assertions.h" |
#include "wtf/Forward.h" |
#include "wtf/PassOwnPtr.h" |
@@ -61,25 +60,25 @@ |
} |
}; |
- template<bool isConvertibleToInteger, bool isThreadSafeRefCounted, bool isGarbageCollected, typename T> struct CrossThreadCopierBase; |
+ template<bool isConvertibleToInteger, bool isThreadSafeRefCounted, typename T> struct CrossThreadCopierBase; |
// Integers get passed through without any changes. |
- template<typename T> struct CrossThreadCopierBase<true, false, false, T> : public CrossThreadCopierPassThrough<T> { |
+ template<typename T> struct CrossThreadCopierBase<true, false, T> : public CrossThreadCopierPassThrough<T> { |
}; |
// To allow a type to be passed across threads using its copy constructor, add a forward declaration of the type and |
// a CopyThreadCopierBase<false, false, TypeName> : public CrossThreadCopierPassThrough<TypeName> { }; to this file. |
- template<> struct CrossThreadCopierBase<false, false, false, ThreadableLoaderOptions> : public CrossThreadCopierPassThrough<ThreadableLoaderOptions> { |
+ template<> struct CrossThreadCopierBase<false, false, ThreadableLoaderOptions> : public CrossThreadCopierPassThrough<ThreadableLoaderOptions> { |
}; |
- template<> struct CrossThreadCopierBase<false, false, false, IntRect> : public CrossThreadCopierPassThrough<IntRect> { |
+ template<> struct CrossThreadCopierBase<false, false, IntRect> : public CrossThreadCopierPassThrough<IntRect> { |
}; |
- template<> struct CrossThreadCopierBase<false, false, false, IntSize> : public CrossThreadCopierPassThrough<IntSize> { |
+ template<> struct CrossThreadCopierBase<false, false, IntSize> : public CrossThreadCopierPassThrough<IntSize> { |
}; |
// Custom copy methods. |
- template<typename T> struct CrossThreadCopierBase<false, true, false, T> { |
+ template<typename T> struct CrossThreadCopierBase<false, true, T> { |
typedef typename WTF::RemoveTemplate<T, RefPtr>::Type TypeWithoutRefPtr; |
typedef typename WTF::RemoveTemplate<TypeWithoutRefPtr, PassRefPtr>::Type TypeWithoutPassRefPtr; |
typedef typename WTF::RemovePointer<TypeWithoutPassRefPtr>::Type RefCountedType; |
@@ -97,7 +96,7 @@ |
} |
}; |
- template<typename T> struct CrossThreadCopierBase<false, false, false, PassOwnPtr<T> > { |
+ template<typename T> struct CrossThreadCopierBase<false, false, PassOwnPtr<T> > { |
typedef PassOwnPtr<T> Type; |
static Type copy(Type ownPtr) |
{ |
@@ -105,46 +104,36 @@ |
} |
}; |
- template<> struct CrossThreadCopierBase<false, false, false, KURL> { |
+ template<> struct CrossThreadCopierBase<false, false, KURL> { |
typedef KURL Type; |
PLATFORM_EXPORT static Type copy(const KURL&); |
}; |
- template<> struct CrossThreadCopierBase<false, false, false, String> { |
+ template<> struct CrossThreadCopierBase<false, false, String> { |
typedef String Type; |
PLATFORM_EXPORT static Type copy(const String&); |
}; |
- template<> struct CrossThreadCopierBase<false, false, false, ResourceError> { |
+ template<> struct CrossThreadCopierBase<false, false, ResourceError> { |
typedef ResourceError Type; |
PLATFORM_EXPORT static Type copy(const ResourceError&); |
}; |
- template<> struct CrossThreadCopierBase<false, false, false, ResourceRequest> { |
+ template<> struct CrossThreadCopierBase<false, false, ResourceRequest> { |
typedef PassOwnPtr<CrossThreadResourceRequestData> Type; |
PLATFORM_EXPORT static Type copy(const ResourceRequest&); |
}; |
- template<> struct CrossThreadCopierBase<false, false, false, ResourceResponse> { |
+ template<> struct CrossThreadCopierBase<false, false, ResourceResponse> { |
typedef PassOwnPtr<CrossThreadResourceResponseData> Type; |
PLATFORM_EXPORT static Type copy(const ResourceResponse&); |
}; |
- template<typename T> struct CrossThreadCopierBase<false, false, true, T> { |
- typedef typename WTF::RemovePointer<T>::Type TypeWithoutPointer; |
- typedef PassRefPtrWillBeRawPtr<TypeWithoutPointer> Type; |
- static Type copy(const T& ptr) |
- { |
- return ptr; |
- } |
- }; |
- |
template<typename T> struct CrossThreadCopier : public CrossThreadCopierBase<WTF::IsConvertibleToInteger<T>::value, |
- WTF::IsSubclassOfTemplate<typename WTF::RemoveTemplate<T, RefPtr>::Type, ThreadSafeRefCounted>::value |
- || WTF::IsSubclassOfTemplate<typename WTF::RemovePointer<T>::Type, ThreadSafeRefCounted>::value |
- || WTF::IsSubclassOfTemplate<typename WTF::RemoveTemplate<T, PassRefPtr>::Type, ThreadSafeRefCounted>::value, |
- WTF::IsSubclassOfTemplate<typename WTF::RemovePointer<T>::Type, GarbageCollected>::value, |
- T> { |
+ WTF::IsSubclassOfTemplate<typename WTF::RemoveTemplate<T, RefPtr>::Type, ThreadSafeRefCounted>::value |
+ || WTF::IsSubclassOfTemplate<typename WTF::RemovePointer<T>::Type, ThreadSafeRefCounted>::value |
+ || WTF::IsSubclassOfTemplate<typename WTF::RemoveTemplate<T, PassRefPtr>::Type, ThreadSafeRefCounted>::value, |
+ T> { |
}; |
template<typename T> struct AllowCrossThreadAccessWrapper { |
@@ -155,7 +144,7 @@ |
T* m_value; |
}; |
- template<typename T> struct CrossThreadCopierBase<false, false, false, AllowCrossThreadAccessWrapper<T> > { |
+ template<typename T> struct CrossThreadCopierBase<false, false, AllowCrossThreadAccessWrapper<T> > { |
typedef T* Type; |
static Type copy(const AllowCrossThreadAccessWrapper<T>& wrapper) { return wrapper.value(); } |
}; |
@@ -175,7 +164,7 @@ |
T* m_value; |
}; |
- template<typename T> struct CrossThreadCopierBase<false, false, false, AllowAccessLaterWrapper<T> > { |
+ template<typename T> struct CrossThreadCopierBase<false, false, AllowAccessLaterWrapper<T> > { |
typedef T* Type; |
static Type copy(const AllowAccessLaterWrapper<T>& wrapper) { return wrapper.value(); } |
}; |