| Index: third_party/WebKit/Source/platform/CrossThreadCopier.cpp
|
| diff --git a/third_party/WebKit/Source/platform/CrossThreadCopier.cpp b/third_party/WebKit/Source/platform/CrossThreadCopier.cpp
|
| index 80337ad770838d3bfa90364571a2a4389cdad5fb..4f60be15912308eea487b8d201350487dab2a73e 100644
|
| --- a/third_party/WebKit/Source/platform/CrossThreadCopier.cpp
|
| +++ b/third_party/WebKit/Source/platform/CrossThreadCopier.cpp
|
| @@ -70,27 +70,26 @@ CrossThreadCopier<ResourceResponse>::Type CrossThreadCopier<ResourceResponse>::c
|
| class CopierThreadSafeRefCountedTest : public ThreadSafeRefCounted<CopierThreadSafeRefCountedTest> {
|
| };
|
|
|
| +// Add a generic specialization which will let's us verify that no other template matches.
|
| +template<typename T> struct CrossThreadCopierBase<T, false> {
|
| + typedef int Type;
|
| +};
|
| +
|
| static_assert((std::is_same<
|
| PassRefPtr<CopierThreadSafeRefCountedTest>,
|
| CrossThreadCopier<PassRefPtr<CopierThreadSafeRefCountedTest>>::Type
|
| >::value),
|
| - "PassRefPtr test");
|
| + "PassRefPtr + ThreadSafeRefCounted should pass CrossThreadCopier");
|
| static_assert((std::is_same<
|
| - PassRefPtr<CopierThreadSafeRefCountedTest>,
|
| + RefPtr<CopierThreadSafeRefCountedTest>,
|
| CrossThreadCopier<RefPtr<CopierThreadSafeRefCountedTest>>::Type
|
| >::value),
|
| - "RefPtr test");
|
| + "RefPtr + ThreadSafeRefCounted should pass CrossThreadCopier");
|
| static_assert((std::is_same<
|
| - PassRefPtr<CopierThreadSafeRefCountedTest>,
|
| + int,
|
| CrossThreadCopier<CopierThreadSafeRefCountedTest*>::Type
|
| >::value),
|
| - "RawPointer test");
|
| -
|
| -
|
| -// Add a generic specialization which will let's us verify that no other template matches.
|
| -template<typename T> struct CrossThreadCopierBase<T, false, false> {
|
| - typedef int Type;
|
| -};
|
| + "Raw pointer + ThreadSafeRefCounted should NOT pass CrossThreadCopier");
|
|
|
| // Verify that RefCounted objects only match our generic template which exposes Type as int.
|
| class CopierRefCountedTest : public RefCounted<CopierRefCountedTest> {
|
| @@ -98,21 +97,9 @@ class CopierRefCountedTest : public RefCounted<CopierRefCountedTest> {
|
|
|
| static_assert((std::is_same<
|
| int,
|
| - CrossThreadCopier<PassRefPtr<CopierRefCountedTest>>::Type
|
| - >::value),
|
| - "PassRefPtr<RefCountedTest> test");
|
| -
|
| -static_assert((std::is_same<
|
| - int,
|
| - CrossThreadCopier<RefPtr<CopierRefCountedTest>>::Type
|
| - >::value),
|
| - "RefPtr<RefCounted> test");
|
| -
|
| -static_assert((std::is_same<
|
| - int,
|
| CrossThreadCopier<CopierRefCountedTest*>::Type
|
| >::value),
|
| - "Raw pointer RefCounted test");
|
| + "Raw pointer + RefCounted should NOT pass CrossThreadCopier");
|
|
|
| // Verify that std::unique_ptr gets passed through.
|
| static_assert((std::is_same<
|
|
|