| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2009, 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2009, 2010 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 24 matching lines...) Expand all Loading... |
| 35 #include "platform/heap/Handle.h" | 35 #include "platform/heap/Handle.h" |
| 36 #include "wtf/Assertions.h" | 36 #include "wtf/Assertions.h" |
| 37 #include "wtf/Forward.h" | 37 #include "wtf/Forward.h" |
| 38 #include "wtf/PassOwnPtr.h" | 38 #include "wtf/PassOwnPtr.h" |
| 39 #include "wtf/PassRefPtr.h" | 39 #include "wtf/PassRefPtr.h" |
| 40 #include "wtf/RawPtr.h" | 40 #include "wtf/RawPtr.h" |
| 41 #include "wtf/RefPtr.h" | 41 #include "wtf/RefPtr.h" |
| 42 #include "wtf/ThreadSafeRefCounted.h" | 42 #include "wtf/ThreadSafeRefCounted.h" |
| 43 #include "wtf/TypeTraits.h" | 43 #include "wtf/TypeTraits.h" |
| 44 | 44 |
| 45 class SkRefCnt; |
| 46 |
| 45 namespace blink { | 47 namespace blink { |
| 46 | 48 |
| 47 class IntRect; | 49 class IntRect; |
| 48 class IntSize; | 50 class IntSize; |
| 49 class KURL; | 51 class KURL; |
| 50 class ResourceError; | 52 class ResourceError; |
| 51 class ResourceRequest; | 53 class ResourceRequest; |
| 52 class ResourceResponse; | 54 class ResourceResponse; |
| 53 struct CrossThreadResourceResponseData; | 55 struct CrossThreadResourceResponseData; |
| 54 struct CrossThreadResourceRequestData; | 56 struct CrossThreadResourceRequestData; |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 104 return ptr; | 106 return ptr; |
| 105 } | 107 } |
| 106 }; | 108 }; |
| 107 | 109 |
| 108 template <typename T> | 110 template <typename T> |
| 109 struct CrossThreadCopier : public CrossThreadCopierBase< | 111 struct CrossThreadCopier : public CrossThreadCopierBase< |
| 110 T, | 112 T, |
| 111 std::is_arithmetic<T>::value || std::is_enum<T>::value, | 113 std::is_arithmetic<T>::value || std::is_enum<T>::value, |
| 112 WTF::IsSubclassOfTemplate<typename WTF::RemoveTemplate<T, RefPtr>::Type, Thr
eadSafeRefCounted>::value | 114 WTF::IsSubclassOfTemplate<typename WTF::RemoveTemplate<T, RefPtr>::Type, Thr
eadSafeRefCounted>::value |
| 113 || WTF::IsSubclassOfTemplate<typename std::remove_pointer<T>::type, ThreadSa
feRefCounted>::value | 115 || WTF::IsSubclassOfTemplate<typename std::remove_pointer<T>::type, ThreadSa
feRefCounted>::value |
| 114 || WTF::IsSubclassOfTemplate<typename WTF::RemoveTemplate<T, PassRefPtr>::Ty
pe, ThreadSafeRefCounted>::value, | 116 || WTF::IsSubclassOfTemplate<typename WTF::RemoveTemplate<T, PassRefPtr>::Ty
pe, ThreadSafeRefCounted>::value |
| 117 || std::is_base_of<SkRefCnt, typename WTF::RemoveTemplate<T, RefPtr>::Type>:
:value |
| 118 || std::is_base_of<SkRefCnt, typename std::remove_pointer<T>::type>::value |
| 119 || std::is_base_of<SkRefCnt, typename WTF::RemoveTemplate<T, PassRefPtr>::Ty
pe>::value, |
| 115 WTF::IsSubclassOfTemplate<typename std::remove_pointer<T>::type, GarbageColl
ected>::value> { | 120 WTF::IsSubclassOfTemplate<typename std::remove_pointer<T>::type, GarbageColl
ected>::value> { |
| 116 STATIC_ONLY(CrossThreadCopier); | 121 STATIC_ONLY(CrossThreadCopier); |
| 117 }; | 122 }; |
| 118 | 123 |
| 119 // CrossThreadCopier specializations follow. | 124 // CrossThreadCopier specializations follow. |
| 120 | 125 |
| 121 // nullptr_t can be passed through without any changes. | 126 // nullptr_t can be passed through without any changes. |
| 122 template <> | 127 template <> |
| 123 struct CrossThreadCopier<std::nullptr_t> : public CrossThreadCopierPassThrough<s
td::nullptr_t> { | 128 struct CrossThreadCopier<std::nullptr_t> : public CrossThreadCopierPassThrough<s
td::nullptr_t> { |
| 124 STATIC_ONLY(CrossThreadCopier); | 129 STATIC_ONLY(CrossThreadCopier); |
| (...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 261 | 266 |
| 262 template <typename T> | 267 template <typename T> |
| 263 AllowCrossThreadAccessWrapper<const WeakPtr<T>&> AllowCrossThreadAccess(const We
akPtr<T>& value) | 268 AllowCrossThreadAccessWrapper<const WeakPtr<T>&> AllowCrossThreadAccess(const We
akPtr<T>& value) |
| 264 { | 269 { |
| 265 return AllowCrossThreadAccessWrapper<const WeakPtr<T>&>(value); | 270 return AllowCrossThreadAccessWrapper<const WeakPtr<T>&>(value); |
| 266 } | 271 } |
| 267 | 272 |
| 268 } // namespace blink | 273 } // namespace blink |
| 269 | 274 |
| 270 #endif // CrossThreadCopier_h | 275 #endif // CrossThreadCopier_h |
| OLD | NEW |