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 340 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
351 } | 351 } |
352 | 352 |
353 template<typename U> | 353 template<typename U> |
354 U* as() const | 354 U* as() const |
355 { | 355 { |
356 return static_cast<U*>(m_raw); | 356 return static_cast<U*>(m_raw); |
357 } | 357 } |
358 | 358 |
359 void trace(Visitor* visitor) | 359 void trace(Visitor* visitor) |
360 { | 360 { |
361 COMPILE_ASSERT_IS_GARBAGE_COLLECTED(T, NonGarbageCollectedObjectInPersis
tent); | 361 STATIC_ASSERT_IS_GARBAGE_COLLECTED(T, "non-garbage collected object shou
ld not be in Persistent"); |
362 #if ENABLE(GC_PROFILE_MARKING) | 362 #if ENABLE(GC_PROFILE_MARKING) |
363 visitor->setHostInfo(this, m_tracingName.isEmpty() ? "Persistent" : m_tr
acingName); | 363 visitor->setHostInfo(this, m_tracingName.isEmpty() ? "Persistent" : m_tr
acingName); |
364 #endif | 364 #endif |
365 visitor->mark(m_raw); | 365 visitor->mark(m_raw); |
366 } | 366 } |
367 | 367 |
368 RawPtr<T> release() | 368 RawPtr<T> release() |
369 { | 369 { |
370 RawPtr<T> result = m_raw; | 370 RawPtr<T> result = m_raw; |
371 m_raw = nullptr; | 371 m_raw = nullptr; |
(...skipping 440 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
812 #define WillBeHeapTerminatedArrayBuilder blink::HeapTerminatedArrayBuilder | 812 #define WillBeHeapTerminatedArrayBuilder blink::HeapTerminatedArrayBuilder |
813 #define WillBeHeapLinkedStack blink::HeapLinkedStack | 813 #define WillBeHeapLinkedStack blink::HeapLinkedStack |
814 #define PersistentHeapHashMapWillBeHeapHashMap blink::HeapHashMap | 814 #define PersistentHeapHashMapWillBeHeapHashMap blink::HeapHashMap |
815 #define PersistentHeapHashSetWillBeHeapHashSet blink::HeapHashSet | 815 #define PersistentHeapHashSetWillBeHeapHashSet blink::HeapHashSet |
816 #define PersistentHeapDequeWillBeHeapDeque blink::HeapDeque | 816 #define PersistentHeapDequeWillBeHeapDeque blink::HeapDeque |
817 #define PersistentHeapVectorWillBeHeapVector blink::HeapVector | 817 #define PersistentHeapVectorWillBeHeapVector blink::HeapVector |
818 | 818 |
819 template<typename T> T* adoptRefWillBeNoop(T* ptr) | 819 template<typename T> T* adoptRefWillBeNoop(T* ptr) |
820 { | 820 { |
821 static const bool notRefCounted = !WTF::IsSubclassOfTemplate<typename WTF::R
emoveConst<T>::Type, RefCounted>::value; | 821 static const bool notRefCounted = !WTF::IsSubclassOfTemplate<typename WTF::R
emoveConst<T>::Type, RefCounted>::value; |
822 COMPILE_ASSERT(notRefCounted, youMustAdopt); | 822 static_assert(notRefCounted, "you must adopt"); |
823 return ptr; | 823 return ptr; |
824 } | 824 } |
825 | 825 |
826 template<typename T> T* adoptPtrWillBeNoop(T* ptr) | 826 template<typename T> T* adoptPtrWillBeNoop(T* ptr) |
827 { | 827 { |
828 static const bool notRefCounted = !WTF::IsSubclassOfTemplate<typename WTF::R
emoveConst<T>::Type, RefCounted>::value; | 828 static const bool notRefCounted = !WTF::IsSubclassOfTemplate<typename WTF::R
emoveConst<T>::Type, RefCounted>::value; |
829 COMPILE_ASSERT(notRefCounted, youMustAdopt); | 829 static_assert(notRefCounted, "you must adopt"); |
830 return ptr; | 830 return ptr; |
831 } | 831 } |
832 | 832 |
833 #define WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED // do nothing when oilpan is ena
bled. | 833 #define WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED // do nothing when oilpan is ena
bled. |
834 #define DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(type) // do nothing | 834 #define DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(type) // do nothing |
835 #define DECLARE_EMPTY_VIRTUAL_DESTRUCTOR_WILL_BE_REMOVED(type) // do nothing | 835 #define DECLARE_EMPTY_VIRTUAL_DESTRUCTOR_WILL_BE_REMOVED(type) // do nothing |
836 #define DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(type) // do nothing | 836 #define DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(type) // do nothing |
837 | 837 |
838 #define DEFINE_STATIC_REF_WILL_BE_PERSISTENT(type, name, arguments) \ | 838 #define DEFINE_STATIC_REF_WILL_BE_PERSISTENT(type, name, arguments) \ |
839 static type* name = (new Persistent<type>(arguments))->get(); | 839 static type* name = (new Persistent<type>(arguments))->get(); |
(...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1188 template<typename T> | 1188 template<typename T> |
1189 struct ParamStorageTraits<RawPtr<T>> : public PointerParamStorageTraits<T*, blin
k::IsGarbageCollectedType<T>::value> { | 1189 struct ParamStorageTraits<RawPtr<T>> : public PointerParamStorageTraits<T*, blin
k::IsGarbageCollectedType<T>::value> { |
1190 }; | 1190 }; |
1191 | 1191 |
1192 template<typename T> | 1192 template<typename T> |
1193 PassRefPtr<T> adoptRef(blink::RefCountedGarbageCollected<T>*) = delete; | 1193 PassRefPtr<T> adoptRef(blink::RefCountedGarbageCollected<T>*) = delete; |
1194 | 1194 |
1195 } // namespace WTF | 1195 } // namespace WTF |
1196 | 1196 |
1197 #endif | 1197 #endif |
OLD | NEW |