Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(66)

Side by Side Diff: third_party/WebKit/Source/platform/CrossThreadCopier.cpp

Issue 1477213003: More switching to standard type traits (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Use std::is_base_of Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009 Google Inc. All rights reserved. 2 * Copyright (C) 2009 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 { 64 {
65 return response.copyData(); 65 return response.copyData();
66 } 66 }
67 67
68 // Test CrossThreadCopier using static_assert. 68 // Test CrossThreadCopier using static_assert.
69 69
70 // Verify that ThreadSafeRefCounted objects get handled correctly. 70 // Verify that ThreadSafeRefCounted objects get handled correctly.
71 class CopierThreadSafeRefCountedTest : public ThreadSafeRefCounted<CopierThreadS afeRefCountedTest> { 71 class CopierThreadSafeRefCountedTest : public ThreadSafeRefCounted<CopierThreadS afeRefCountedTest> {
72 }; 72 };
73 73
74 static_assert((WTF::IsSameType< 74 static_assert((std::is_same<
75 PassRefPtr<CopierThreadSafeRefCountedTest>, 75 PassRefPtr<CopierThreadSafeRefCountedTest>,
76 CrossThreadCopier<PassRefPtr<CopierThreadSafeRefCountedTest>>::Type 76 CrossThreadCopier<PassRefPtr<CopierThreadSafeRefCountedTest>>::Type
77 >::value), 77 >::value),
78 "PassRefPtr test"); 78 "PassRefPtr test");
79 static_assert((WTF::IsSameType< 79 static_assert((std::is_same<
80 PassRefPtr<CopierThreadSafeRefCountedTest>, 80 PassRefPtr<CopierThreadSafeRefCountedTest>,
81 CrossThreadCopier<RefPtr<CopierThreadSafeRefCountedTest>>::Type 81 CrossThreadCopier<RefPtr<CopierThreadSafeRefCountedTest>>::Type
82 >::value), 82 >::value),
83 "RefPtr test"); 83 "RefPtr test");
84 static_assert((WTF::IsSameType< 84 static_assert((std::is_same<
85 PassRefPtr<CopierThreadSafeRefCountedTest>, 85 PassRefPtr<CopierThreadSafeRefCountedTest>,
86 CrossThreadCopier<CopierThreadSafeRefCountedTest*>::Type 86 CrossThreadCopier<CopierThreadSafeRefCountedTest*>::Type
87 >::value), 87 >::value),
88 "RawPointer test"); 88 "RawPointer test");
89 89
90 90
91 // Add a generic specialization which will let's us verify that no other templat e matches. 91 // Add a generic specialization which will let's us verify that no other templat e matches.
92 template<typename T> struct CrossThreadCopierBase<false, false, false, T> { 92 template<typename T> struct CrossThreadCopierBase<false, false, false, T> {
93 typedef int Type; 93 typedef int Type;
94 }; 94 };
95 95
96 // Verify that RefCounted objects only match our generic template which exposes Type as int. 96 // Verify that RefCounted objects only match our generic template which exposes Type as int.
97 class CopierRefCountedTest : public RefCounted<CopierRefCountedTest> { 97 class CopierRefCountedTest : public RefCounted<CopierRefCountedTest> {
98 }; 98 };
99 99
100 static_assert((WTF::IsSameType< 100 static_assert((std::is_same<
101 int, 101 int,
102 CrossThreadCopier<PassRefPtr<CopierRefCountedTest>>::Type 102 CrossThreadCopier<PassRefPtr<CopierRefCountedTest>>::Type
103 >::value), 103 >::value),
104 "PassRefPtr<RefCountedTest> test"); 104 "PassRefPtr<RefCountedTest> test");
105 105
106 static_assert((WTF::IsSameType< 106 static_assert((std::is_same<
107 int, 107 int,
108 CrossThreadCopier<RefPtr<CopierRefCountedTest>>::Type 108 CrossThreadCopier<RefPtr<CopierRefCountedTest>>::Type
109 >::value), 109 >::value),
110 "RefPtr<RefCounted> test"); 110 "RefPtr<RefCounted> test");
111 111
112 static_assert((WTF::IsSameType< 112 static_assert((std::is_same<
113 int, 113 int,
114 CrossThreadCopier<CopierRefCountedTest*>::Type 114 CrossThreadCopier<CopierRefCountedTest*>::Type
115 >::value), 115 >::value),
116 "Raw pointer RefCounted test"); 116 "Raw pointer RefCounted test");
117 117
118 // Verify that PassOwnPtr gets passed through. 118 // Verify that PassOwnPtr gets passed through.
119 static_assert((WTF::IsSameType< 119 static_assert((std::is_same<
120 PassOwnPtr<float>, 120 PassOwnPtr<float>,
121 CrossThreadCopier<PassOwnPtr<float>>::Type 121 CrossThreadCopier<PassOwnPtr<float>>::Type
122 >::value), 122 >::value),
123 "PassOwnPtr test"); 123 "PassOwnPtr test");
124 124
125 // Verify that PassOwnPtr does not get passed through. 125 // Verify that PassOwnPtr does not get passed through.
126 static_assert((WTF::IsSameType< 126 static_assert((std::is_same<
127 int, 127 int,
128 CrossThreadCopier<OwnPtr<float>>::Type 128 CrossThreadCopier<OwnPtr<float>>::Type
129 >::value), 129 >::value),
130 "OwnPtr test"); 130 "OwnPtr test");
131 131
132 } // namespace blink 132 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698