Index: third_party/WebKit/Source/platform/CrossThreadCopier.h |
diff --git a/third_party/WebKit/Source/platform/CrossThreadCopier.h b/third_party/WebKit/Source/platform/CrossThreadCopier.h |
index 8d49eef467e90d7d648c6e21c75b6adb578ba960..f346ced979da1c7b879fd826abf4586b05f13030 100644 |
--- a/third_party/WebKit/Source/platform/CrossThreadCopier.h |
+++ b/third_party/WebKit/Source/platform/CrossThreadCopier.h |
@@ -91,9 +91,14 @@ struct CrossThreadCopier : public CrossThreadCopierBase<T, std::is_arithmetic<T> |
// CrossThreadCopier specializations follow. |
template <typename T> |
-struct CrossThreadCopier<PassRefPtr<T>> : public CrossThreadCopierPassThrough<PassRefPtr<T>> { |
+struct CrossThreadCopier<PassRefPtr<T>> { |
STATIC_ONLY(CrossThreadCopier); |
+ typedef T Type; |
Yuta Kitamura
2016/09/27 01:59:28
Type should be PassRefPtr<T>, not T. In the origin
|
static_assert(WTF::IsSubclassOfTemplate<T, ThreadSafeRefCounted>::value, "PassRefPtr<T> can be passed across threads only if T is ThreadSafeRefCounted."); |
+ static PassRefPtr<T> copy(PassRefPtr<T>&& pointer) |
+ { |
+ return std::move(pointer); |
+ } |
}; |
template <typename T> |
struct CrossThreadCopier<RefPtr<T>> : public CrossThreadCopierPassThrough<RefPtr<T>> { |