OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2014 Google Inc. All rights reserved. | 2 * Copyright (C) 2014 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 22 matching lines...) Expand all Loading... |
33 | 33 |
34 #include "platform/heap/Heap.h" | 34 #include "platform/heap/Heap.h" |
35 #include "platform/heap/ThreadState.h" | 35 #include "platform/heap/ThreadState.h" |
36 #include "platform/heap/Visitor.h" | 36 #include "platform/heap/Visitor.h" |
37 #include "wtf/Functional.h" | 37 #include "wtf/Functional.h" |
38 #include "wtf/HashFunctions.h" | 38 #include "wtf/HashFunctions.h" |
39 #include "wtf/Locker.h" | 39 #include "wtf/Locker.h" |
40 #include "wtf/RawPtr.h" | 40 #include "wtf/RawPtr.h" |
41 #include "wtf/RefCounted.h" | 41 #include "wtf/RefCounted.h" |
42 #include "wtf/TypeTraits.h" | 42 #include "wtf/TypeTraits.h" |
| 43 #include "wtf/UnretainedPtr.h" |
43 | 44 |
44 namespace blink { | 45 namespace blink { |
45 | 46 |
46 template<typename T> class HeapTerminatedArray; | 47 template<typename T> class HeapTerminatedArray; |
47 | 48 |
48 // Template to determine if a class is a GarbageCollectedMixin by checking if it | 49 // Template to determine if a class is a GarbageCollectedMixin by checking if it |
49 // has adjustAndMark and isAlive. We can't check directly if the class is a | 50 // has adjustAndMark and isAlive. We can't check directly if the class is a |
50 // GarbageCollectedMixin because casting to it is potentially ambiguous. | 51 // GarbageCollectedMixin because casting to it is potentially ambiguous. |
51 template<typename T> | 52 template<typename T> |
52 struct IsGarbageCollectedMixin { | 53 struct IsGarbageCollectedMixin { |
(...skipping 1100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1153 }; | 1154 }; |
1154 | 1155 |
1155 template<typename T> | 1156 template<typename T> |
1156 struct ParamStorageTraits<T*> : public PointerParamStorageTraits<T*, blink::IsGa
rbageCollectedType<T>::value> { | 1157 struct ParamStorageTraits<T*> : public PointerParamStorageTraits<T*, blink::IsGa
rbageCollectedType<T>::value> { |
1157 }; | 1158 }; |
1158 | 1159 |
1159 template<typename T> | 1160 template<typename T> |
1160 struct ParamStorageTraits<RawPtr<T> > : public PointerParamStorageTraits<T*, bli
nk::IsGarbageCollectedType<T>::value> { | 1161 struct ParamStorageTraits<RawPtr<T> > : public PointerParamStorageTraits<T*, bli
nk::IsGarbageCollectedType<T>::value> { |
1161 }; | 1162 }; |
1162 | 1163 |
| 1164 template<typename T> |
| 1165 struct ParamStorageTraits<UnretainedPtr<T> > : public PointerParamStorageTraits<
T*, false> { |
| 1166 }; |
| 1167 |
1163 } // namespace WTF | 1168 } // namespace WTF |
1164 | 1169 |
1165 #endif | 1170 #endif |
OLD | NEW |