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 780 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
791 #define RawPtrWillBeMember WebCore::Member | 791 #define RawPtrWillBeMember WebCore::Member |
792 #define RawPtrWillBeWeakMember WebCore::WeakMember | 792 #define RawPtrWillBeWeakMember WebCore::WeakMember |
793 #define OwnPtrWillBeMember WebCore::Member | 793 #define OwnPtrWillBeMember WebCore::Member |
794 #define OwnPtrWillBePersistent WebCore::Persistent | 794 #define OwnPtrWillBePersistent WebCore::Persistent |
795 #define OwnPtrWillBeRawPtr WTF::RawPtr | 795 #define OwnPtrWillBeRawPtr WTF::RawPtr |
796 #define PassOwnPtrWillBeRawPtr WTF::RawPtr | 796 #define PassOwnPtrWillBeRawPtr WTF::RawPtr |
797 #define WeakPtrWillBeRawPtr WTF::RawPtr | 797 #define WeakPtrWillBeRawPtr WTF::RawPtr |
798 #define WeakPtrWillBeWeakMember WebCore::WeakMember | 798 #define WeakPtrWillBeWeakMember WebCore::WeakMember |
799 #define NoBaseWillBeGarbageCollected WebCore::GarbageCollected | 799 #define NoBaseWillBeGarbageCollected WebCore::GarbageCollected |
800 #define NoBaseWillBeGarbageCollectedFinalized WebCore::GarbageCollectedFinalized | 800 #define NoBaseWillBeGarbageCollectedFinalized WebCore::GarbageCollectedFinalized |
| 801 #define NoBaseWillBeRefCountedGarbageCollected WebCore::RefCountedGarbageCollect
ed |
801 #define WillBeHeapHashMap WebCore::HeapHashMap | 802 #define WillBeHeapHashMap WebCore::HeapHashMap |
802 #define WillBePersistentHeapHashMap WebCore::PersistentHeapHashMap | 803 #define WillBePersistentHeapHashMap WebCore::PersistentHeapHashMap |
803 #define WillBeHeapHashSet WebCore::HeapHashSet | 804 #define WillBeHeapHashSet WebCore::HeapHashSet |
804 #define WillBePersistentHeapHashSet WebCore::PersistentHeapHashSet | 805 #define WillBePersistentHeapHashSet WebCore::PersistentHeapHashSet |
805 #define WillBeHeapLinkedHashSet WebCore::HeapLinkedHashSet | 806 #define WillBeHeapLinkedHashSet WebCore::HeapLinkedHashSet |
806 #define WillBePersistentHeapLinkedHashSet WebCore::PersistentHeapLinkedHashSet | 807 #define WillBePersistentHeapLinkedHashSet WebCore::PersistentHeapLinkedHashSet |
807 #define WillBeHeapListHashSet WebCore::HeapListHashSet | 808 #define WillBeHeapListHashSet WebCore::HeapListHashSet |
808 #define WillBePersistentHeapListHashSet WebCore::PersistentHeapListHashSet | 809 #define WillBePersistentHeapListHashSet WebCore::PersistentHeapListHashSet |
809 #define WillBeHeapVector WebCore::HeapVector | 810 #define WillBeHeapVector WebCore::HeapVector |
810 #define WillBePersistentHeapVector WebCore::PersistentHeapVector | 811 #define WillBePersistentHeapVector WebCore::PersistentHeapVector |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
844 | 845 |
845 template<typename T> PassOwnPtrWillBeRawPtr<T> adoptPtrWillBeNoop(T* ptr) | 846 template<typename T> PassOwnPtrWillBeRawPtr<T> adoptPtrWillBeNoop(T* ptr) |
846 { | 847 { |
847 static const bool notRefCountedGarbageCollected = !WTF::IsSubclassOfTemplate
<typename WTF::RemoveConst<T>::Type, RefCountedGarbageCollected>::value; | 848 static const bool notRefCountedGarbageCollected = !WTF::IsSubclassOfTemplate
<typename WTF::RemoveConst<T>::Type, RefCountedGarbageCollected>::value; |
848 static const bool notRefCounted = !WTF::IsSubclassOfTemplate<typename WTF::R
emoveConst<T>::Type, RefCounted>::value; | 849 static const bool notRefCounted = !WTF::IsSubclassOfTemplate<typename WTF::R
emoveConst<T>::Type, RefCounted>::value; |
849 COMPILE_ASSERT(notRefCountedGarbageCollected, useAdoptRefCountedWillBeRefCou
ntedGarbageCollected); | 850 COMPILE_ASSERT(notRefCountedGarbageCollected, useAdoptRefCountedWillBeRefCou
ntedGarbageCollected); |
850 COMPILE_ASSERT(notRefCounted, youMustAdopt); | 851 COMPILE_ASSERT(notRefCounted, youMustAdopt); |
851 return PassOwnPtrWillBeRawPtr<T>(ptr); | 852 return PassOwnPtrWillBeRawPtr<T>(ptr); |
852 } | 853 } |
853 | 854 |
| 855 template<typename T> T* adoptPtrWillBeRefCountedGarbageCollected(T* ptr) |
| 856 { |
| 857 static const bool isRefCountedGarbageCollected = WTF::IsSubclassOfTemplate<t
ypename WTF::RemoveConst<T>::Type, RefCountedGarbageCollected>::value; |
| 858 COMPILE_ASSERT(isRefCountedGarbageCollected, useAdoptRefWillBeNoop); |
| 859 return adoptRefCountedGarbageCollected(ptr); |
| 860 } |
| 861 |
854 #define WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED // do nothing when oilpan is ena
bled. | 862 #define WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED // do nothing when oilpan is ena
bled. |
855 #define DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(type) // do nothing | 863 #define DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(type) // do nothing |
856 #define DECLARE_EMPTY_VIRTUAL_DESTRUCTOR_WILL_BE_REMOVED(type) // do nothing | 864 #define DECLARE_EMPTY_VIRTUAL_DESTRUCTOR_WILL_BE_REMOVED(type) // do nothing |
857 #define DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(type) // do nothing | 865 #define DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(type) // do nothing |
858 | 866 |
859 #define DEFINE_STATIC_REF_WILL_BE_PERSISTENT(type, name, arguments) \ | 867 #define DEFINE_STATIC_REF_WILL_BE_PERSISTENT(type, name, arguments) \ |
860 DEFINE_STATIC_LOCAL(Persistent<type>, name, arguments) | 868 DEFINE_STATIC_LOCAL(Persistent<type>, name, arguments) |
861 | 869 |
862 #else // !ENABLE(OILPAN) | 870 #else // !ENABLE(OILPAN) |
863 | 871 |
(...skipping 21 matching lines...) Expand all Loading... |
885 #define RawPtrWillBeMember WTF::RawPtr | 893 #define RawPtrWillBeMember WTF::RawPtr |
886 #define RawPtrWillBeWeakMember WTF::RawPtr | 894 #define RawPtrWillBeWeakMember WTF::RawPtr |
887 #define OwnPtrWillBeMember WTF::OwnPtr | 895 #define OwnPtrWillBeMember WTF::OwnPtr |
888 #define OwnPtrWillBePersistent WTF::OwnPtr | 896 #define OwnPtrWillBePersistent WTF::OwnPtr |
889 #define OwnPtrWillBeRawPtr WTF::OwnPtr | 897 #define OwnPtrWillBeRawPtr WTF::OwnPtr |
890 #define PassOwnPtrWillBeRawPtr WTF::PassOwnPtr | 898 #define PassOwnPtrWillBeRawPtr WTF::PassOwnPtr |
891 #define WeakPtrWillBeRawPtr WTF::WeakPtr | 899 #define WeakPtrWillBeRawPtr WTF::WeakPtr |
892 #define WeakPtrWillBeWeakMember WTF::WeakPtr | 900 #define WeakPtrWillBeWeakMember WTF::WeakPtr |
893 #define NoBaseWillBeGarbageCollected WebCore::DummyBase | 901 #define NoBaseWillBeGarbageCollected WebCore::DummyBase |
894 #define NoBaseWillBeGarbageCollectedFinalized WebCore::DummyBase | 902 #define NoBaseWillBeGarbageCollectedFinalized WebCore::DummyBase |
| 903 #define NoBaseWillBeRefCountedGarbageCollected WebCore::DummyBase |
895 #define WillBeHeapHashMap WTF::HashMap | 904 #define WillBeHeapHashMap WTF::HashMap |
896 #define WillBePersistentHeapHashMap WTF::HashMap | 905 #define WillBePersistentHeapHashMap WTF::HashMap |
897 #define WillBeHeapHashSet WTF::HashSet | 906 #define WillBeHeapHashSet WTF::HashSet |
898 #define WillBePersistentHeapHashSet WTF::HashSet | 907 #define WillBePersistentHeapHashSet WTF::HashSet |
899 #define WillBeHeapLinkedHashSet WTF::LinkedHashSet | 908 #define WillBeHeapLinkedHashSet WTF::LinkedHashSet |
900 #define WillBePersistentLinkedHeapHashSet WTF::LinkedHashSet | 909 #define WillBePersistentLinkedHeapHashSet WTF::LinkedHashSet |
901 #define WillBeHeapListHashSet WTF::ListHashSet | 910 #define WillBeHeapListHashSet WTF::ListHashSet |
902 #define WillBePersistentListHeapHashSet WTF::ListHashSet | 911 #define WillBePersistentListHeapHashSet WTF::ListHashSet |
903 #define WillBeHeapVector WTF::Vector | 912 #define WillBeHeapVector WTF::Vector |
904 #define WillBePersistentHeapVector WTF::Vector | 913 #define WillBePersistentHeapVector WTF::Vector |
905 #define WillBeHeapDeque WTF::Deque | 914 #define WillBeHeapDeque WTF::Deque |
906 #define WillBePersistentHeapDeque WTF::Deque | 915 #define WillBePersistentHeapDeque WTF::Deque |
907 #define WillBeHeapHeapCountedSet WTF::HeapCountedSet | 916 #define WillBeHeapHeapCountedSet WTF::HeapCountedSet |
908 #define WillBePersistentHeapHeapCountedSet WTF::HeapCountedSet | 917 #define WillBePersistentHeapHeapCountedSet WTF::HeapCountedSet |
909 #define WillBeGarbageCollectedMixin WebCore::DummyBase<void> | 918 #define WillBeGarbageCollectedMixin WebCore::DummyBase<void> |
910 #define WillBeHeapSupplement WebCore::Supplement | 919 #define WillBeHeapSupplement WebCore::Supplement |
911 #define WillBeHeapSupplementable WebCore::Supplementable | 920 #define WillBeHeapSupplementable WebCore::Supplementable |
912 #define WillBeHeapTerminatedArray WTF::TerminatedArray | 921 #define WillBeHeapTerminatedArray WTF::TerminatedArray |
913 #define WillBeHeapTerminatedArrayBuilder WTF::TerminatedArrayBuilder | 922 #define WillBeHeapTerminatedArrayBuilder WTF::TerminatedArrayBuilder |
914 #define WillBeHeapLinkedStack WTF::LinkedStack | 923 #define WillBeHeapLinkedStack WTF::LinkedStack |
915 | 924 |
916 template<typename T> PassRefPtrWillBeRawPtr<T> adoptRefWillBeNoop(T* ptr) { retu
rn adoptRef(ptr); } | 925 template<typename T> PassRefPtrWillBeRawPtr<T> adoptRefWillBeNoop(T* ptr) { retu
rn adoptRef(ptr); } |
917 template<typename T> PassRefPtrWillBeRawPtr<T> adoptRefWillBeRefCountedGarbageCo
llected(T* ptr) { return adoptRef(ptr); } | 926 template<typename T> PassRefPtrWillBeRawPtr<T> adoptRefWillBeRefCountedGarbageCo
llected(T* ptr) { return adoptRef(ptr); } |
918 template<typename T> PassRefPtrWillBeRawPtr<T> adoptRefWillBeThreadSafeRefCounte
dGarbageCollected(T* ptr) { return adoptRef(ptr); } | 927 template<typename T> PassRefPtrWillBeRawPtr<T> adoptRefWillBeThreadSafeRefCounte
dGarbageCollected(T* ptr) { return adoptRef(ptr); } |
919 template<typename T> PassOwnPtrWillBeRawPtr<T> adoptPtrWillBeNoop(T* ptr) { retu
rn adoptPtr(ptr); } | 928 template<typename T> PassOwnPtrWillBeRawPtr<T> adoptPtrWillBeNoop(T* ptr) { retu
rn adoptPtr(ptr); } |
| 929 template<typename T> PassOwnPtrWillBeRawPtr<T> adoptPtrWillBeRefCountedGarbageCo
llected(T* ptr) { return adoptPtr(ptr); } |
920 | 930 |
921 #define WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED WTF_MAKE_FAST_ALLOCATED | 931 #define WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED WTF_MAKE_FAST_ALLOCATED |
922 #define DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(type) \ | 932 #define DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(type) \ |
923 public: \ | 933 public: \ |
924 ~type(); \ | 934 ~type(); \ |
925 private: | 935 private: |
926 #define DECLARE_EMPTY_VIRTUAL_DESTRUCTOR_WILL_BE_REMOVED(type) \ | 936 #define DECLARE_EMPTY_VIRTUAL_DESTRUCTOR_WILL_BE_REMOVED(type) \ |
927 public: \ | 937 public: \ |
928 virtual ~type(); \ | 938 virtual ~type(); \ |
929 private: | 939 private: |
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1135 struct NeedsTracing<ListHashSetNode<T, WebCore::HeapListHashSetAllocator<T, inli
neCapacity> > *> { | 1145 struct NeedsTracing<ListHashSetNode<T, WebCore::HeapListHashSetAllocator<T, inli
neCapacity> > *> { |
1136 // All heap allocated node pointers need visiting to keep the nodes alive, | 1146 // All heap allocated node pointers need visiting to keep the nodes alive, |
1137 // regardless of whether they contain pointers to other heap allocated | 1147 // regardless of whether they contain pointers to other heap allocated |
1138 // objects. | 1148 // objects. |
1139 static const bool value = true; | 1149 static const bool value = true; |
1140 }; | 1150 }; |
1141 | 1151 |
1142 } // namespace WTF | 1152 } // namespace WTF |
1143 | 1153 |
1144 #endif | 1154 #endif |
OLD | NEW |