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 765 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
776 // | 776 // |
777 // Having the CPP expansion instead be fully namespace qualified, and the | 777 // Having the CPP expansion instead be fully namespace qualified, and the |
778 // transition type be unqualified, would dually not work for template | 778 // transition type be unqualified, would dually not work for template |
779 // aliases. So, slightly unfortunately, fall back/down to the lowest | 779 // aliases. So, slightly unfortunately, fall back/down to the lowest |
780 // commmon denominator of using CPP macros only. | 780 // commmon denominator of using CPP macros only. |
781 #if ENABLE(OILPAN) | 781 #if ENABLE(OILPAN) |
782 #define PassRefPtrWillBeRawPtr WTF::RawPtr | 782 #define PassRefPtrWillBeRawPtr WTF::RawPtr |
783 #define RefCountedWillBeGarbageCollected WebCore::GarbageCollected | 783 #define RefCountedWillBeGarbageCollected WebCore::GarbageCollected |
784 #define RefCountedWillBeGarbageCollectedFinalized WebCore::GarbageCollectedFinal
ized | 784 #define RefCountedWillBeGarbageCollectedFinalized WebCore::GarbageCollectedFinal
ized |
785 #define RefCountedWillBeRefCountedGarbageCollected WebCore::RefCountedGarbageCol
lected | 785 #define RefCountedWillBeRefCountedGarbageCollected WebCore::RefCountedGarbageCol
lected |
| 786 #define RefCountedGarbageCollectedWillBeGarbageCollectedFinalized WebCore::Garba
geCollectedFinalized |
786 #define ThreadSafeRefCountedWillBeGarbageCollected WebCore::GarbageCollected | 787 #define ThreadSafeRefCountedWillBeGarbageCollected WebCore::GarbageCollected |
787 #define ThreadSafeRefCountedWillBeGarbageCollectedFinalized WebCore::GarbageColl
ectedFinalized | 788 #define ThreadSafeRefCountedWillBeGarbageCollectedFinalized WebCore::GarbageColl
ectedFinalized |
788 #define ThreadSafeRefCountedWillBeThreadSafeRefCountedGarbageCollected WebCore::
ThreadSafeRefCountedGarbageCollected | 789 #define ThreadSafeRefCountedWillBeThreadSafeRefCountedGarbageCollected WebCore::
ThreadSafeRefCountedGarbageCollected |
789 #define TreeSharedWillBeRefCountedGarbageCollected WebCore::RefCountedGarbageCol
lected | 790 #define TreeSharedWillBeRefCountedGarbageCollected WebCore::RefCountedGarbageCol
lected |
790 #define PersistentWillBeMember WebCore::Member | 791 #define PersistentWillBeMember WebCore::Member |
791 #define RefPtrWillBePersistent WebCore::Persistent | 792 #define RefPtrWillBePersistent WebCore::Persistent |
792 #define RefPtrWillBeRawPtr WTF::RawPtr | 793 #define RefPtrWillBeRawPtr WTF::RawPtr |
793 #define RefPtrWillBeMember WebCore::Member | 794 #define RefPtrWillBeMember WebCore::Member |
794 #define RefPtrWillBeWeakMember WebCore::WeakMember | 795 #define RefPtrWillBeWeakMember WebCore::WeakMember |
795 #define RefPtrWillBeCrossThreadPersistent WebCore::CrossThreadPersistent | 796 #define RefPtrWillBeCrossThreadPersistent WebCore::CrossThreadPersistent |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
860 return PassOwnPtrWillBeRawPtr<T>(ptr); | 861 return PassOwnPtrWillBeRawPtr<T>(ptr); |
861 } | 862 } |
862 | 863 |
863 template<typename T> T* adoptPtrWillBeRefCountedGarbageCollected(T* ptr) | 864 template<typename T> T* adoptPtrWillBeRefCountedGarbageCollected(T* ptr) |
864 { | 865 { |
865 static const bool isRefCountedGarbageCollected = WTF::IsSubclassOfTemplate<t
ypename WTF::RemoveConst<T>::Type, RefCountedGarbageCollected>::value; | 866 static const bool isRefCountedGarbageCollected = WTF::IsSubclassOfTemplate<t
ypename WTF::RemoveConst<T>::Type, RefCountedGarbageCollected>::value; |
866 COMPILE_ASSERT(isRefCountedGarbageCollected, useAdoptRefWillBeNoop); | 867 COMPILE_ASSERT(isRefCountedGarbageCollected, useAdoptRefWillBeNoop); |
867 return adoptRefCountedGarbageCollected(ptr); | 868 return adoptRefCountedGarbageCollected(ptr); |
868 } | 869 } |
869 | 870 |
| 871 template<typename T> T* adoptRefCountedGarbageCollectedWillBeNoop(T* ptr) |
| 872 { |
| 873 static const bool notRefCountedGarbageCollected = !WTF::IsSubclassOfTemplate
<typename WTF::RemoveConst<T>::Type, RefCountedGarbageCollected>::value; |
| 874 static const bool notRefCounted = !WTF::IsSubclassOfTemplate<typename WTF::R
emoveConst<T>::Type, RefCounted>::value; |
| 875 COMPILE_ASSERT(notRefCountedGarbageCollected, useAdoptRefCountedWillBeRefCou
ntedGarbageCollected); |
| 876 COMPILE_ASSERT(notRefCounted, youMustAdopt); |
| 877 return ptr; |
| 878 } |
| 879 |
870 #define WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED // do nothing when oilpan is ena
bled. | 880 #define WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED // do nothing when oilpan is ena
bled. |
871 #define DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(type) // do nothing | 881 #define DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(type) // do nothing |
872 #define DECLARE_EMPTY_VIRTUAL_DESTRUCTOR_WILL_BE_REMOVED(type) // do nothing | 882 #define DECLARE_EMPTY_VIRTUAL_DESTRUCTOR_WILL_BE_REMOVED(type) // do nothing |
873 #define DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(type) // do nothing | 883 #define DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(type) // do nothing |
874 | 884 |
875 #define DEFINE_STATIC_REF_WILL_BE_PERSISTENT(type, name, arguments) \ | 885 #define DEFINE_STATIC_REF_WILL_BE_PERSISTENT(type, name, arguments) \ |
876 DEFINE_STATIC_LOCAL(Persistent<type>, name, arguments) | 886 DEFINE_STATIC_LOCAL(Persistent<type>, name, arguments) |
877 | 887 |
878 #else // !ENABLE(OILPAN) | 888 #else // !ENABLE(OILPAN) |
879 | 889 |
880 template<typename T> | 890 template<typename T> |
881 class DummyBase { | 891 class DummyBase { |
882 public: | 892 public: |
883 DummyBase() { } | 893 DummyBase() { } |
884 ~DummyBase() { } | 894 ~DummyBase() { } |
885 }; | 895 }; |
886 | 896 |
887 #define PassRefPtrWillBeRawPtr WTF::PassRefPtr | 897 #define PassRefPtrWillBeRawPtr WTF::PassRefPtr |
888 #define RefCountedWillBeGarbageCollected WTF::RefCounted | 898 #define RefCountedWillBeGarbageCollected WTF::RefCounted |
889 #define RefCountedWillBeGarbageCollectedFinalized WTF::RefCounted | 899 #define RefCountedWillBeGarbageCollectedFinalized WTF::RefCounted |
890 #define RefCountedWillBeRefCountedGarbageCollected WTF::RefCounted | 900 #define RefCountedWillBeRefCountedGarbageCollected WTF::RefCounted |
| 901 #define RefCountedGarbageCollectedWillBeGarbageCollectedFinalized WebCore::RefCo
untedGarbageCollected |
891 #define ThreadSafeRefCountedWillBeGarbageCollected WTF::ThreadSafeRefCounted | 902 #define ThreadSafeRefCountedWillBeGarbageCollected WTF::ThreadSafeRefCounted |
892 #define ThreadSafeRefCountedWillBeGarbageCollectedFinalized WTF::ThreadSafeRefCo
unted | 903 #define ThreadSafeRefCountedWillBeGarbageCollectedFinalized WTF::ThreadSafeRefCo
unted |
893 #define ThreadSafeRefCountedWillBeThreadSafeRefCountedGarbageCollected WTF::Thre
adSafeRefCounted | 904 #define ThreadSafeRefCountedWillBeThreadSafeRefCountedGarbageCollected WTF::Thre
adSafeRefCounted |
894 #define TreeSharedWillBeRefCountedGarbageCollected WebCore::TreeShared | 905 #define TreeSharedWillBeRefCountedGarbageCollected WebCore::TreeShared |
895 #define PersistentWillBeMember WebCore::Persistent | 906 #define PersistentWillBeMember WebCore::Persistent |
896 #define RefPtrWillBePersistent WTF::RefPtr | 907 #define RefPtrWillBePersistent WTF::RefPtr |
897 #define RefPtrWillBeRawPtr WTF::RefPtr | 908 #define RefPtrWillBeRawPtr WTF::RefPtr |
898 #define RefPtrWillBeMember WTF::RefPtr | 909 #define RefPtrWillBeMember WTF::RefPtr |
899 #define RefPtrWillBeWeakMember WTF::RefPtr | 910 #define RefPtrWillBeWeakMember WTF::RefPtr |
900 #define RefPtrWillBeCrossThreadPersistent WTF::RefPtr | 911 #define RefPtrWillBeCrossThreadPersistent WTF::RefPtr |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
932 #define WillBeHeapTerminatedArrayBuilder WTF::TerminatedArrayBuilder | 943 #define WillBeHeapTerminatedArrayBuilder WTF::TerminatedArrayBuilder |
933 #define WillBeHeapLinkedStack WTF::LinkedStack | 944 #define WillBeHeapLinkedStack WTF::LinkedStack |
934 #define PersistentHeapHashSetWillBeHeapHashSet WebCore::PersistentHeapHashSet | 945 #define PersistentHeapHashSetWillBeHeapHashSet WebCore::PersistentHeapHashSet |
935 | 946 |
936 template<typename T> PassRefPtrWillBeRawPtr<T> adoptRefWillBeNoop(T* ptr) { retu
rn adoptRef(ptr); } | 947 template<typename T> PassRefPtrWillBeRawPtr<T> adoptRefWillBeNoop(T* ptr) { retu
rn adoptRef(ptr); } |
937 template<typename T> PassRefPtrWillBeRawPtr<T> adoptRefWillBeRefCountedGarbageCo
llected(T* ptr) { return adoptRef(ptr); } | 948 template<typename T> PassRefPtrWillBeRawPtr<T> adoptRefWillBeRefCountedGarbageCo
llected(T* ptr) { return adoptRef(ptr); } |
938 template<typename T> PassRefPtrWillBeRawPtr<T> adoptRefWillBeThreadSafeRefCounte
dGarbageCollected(T* ptr) { return adoptRef(ptr); } | 949 template<typename T> PassRefPtrWillBeRawPtr<T> adoptRefWillBeThreadSafeRefCounte
dGarbageCollected(T* ptr) { return adoptRef(ptr); } |
939 template<typename T> PassOwnPtrWillBeRawPtr<T> adoptPtrWillBeNoop(T* ptr) { retu
rn adoptPtr(ptr); } | 950 template<typename T> PassOwnPtrWillBeRawPtr<T> adoptPtrWillBeNoop(T* ptr) { retu
rn adoptPtr(ptr); } |
940 template<typename T> PassOwnPtrWillBeRawPtr<T> adoptPtrWillBeRefCountedGarbageCo
llected(T* ptr) { return adoptPtr(ptr); } | 951 template<typename T> PassOwnPtrWillBeRawPtr<T> adoptPtrWillBeRefCountedGarbageCo
llected(T* ptr) { return adoptPtr(ptr); } |
941 | 952 |
| 953 template<typename T> T* adoptRefCountedGarbageCollectedWillBeNoop(T* ptr) |
| 954 { |
| 955 static const bool isRefCountedGarbageCollected = WTF::IsSubclassOfTemplate<t
ypename WTF::RemoveConst<T>::Type, RefCountedGarbageCollected>::value; |
| 956 COMPILE_ASSERT(isRefCountedGarbageCollected, useAdoptRefWillBeNoop); |
| 957 return adoptRefCountedGarbageCollected(ptr); |
| 958 } |
| 959 |
| 960 |
942 #define WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED WTF_MAKE_FAST_ALLOCATED | 961 #define WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED WTF_MAKE_FAST_ALLOCATED |
943 #define DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(type) \ | 962 #define DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(type) \ |
944 public: \ | 963 public: \ |
945 ~type(); \ | 964 ~type(); \ |
946 private: | 965 private: |
947 #define DECLARE_EMPTY_VIRTUAL_DESTRUCTOR_WILL_BE_REMOVED(type) \ | 966 #define DECLARE_EMPTY_VIRTUAL_DESTRUCTOR_WILL_BE_REMOVED(type) \ |
948 public: \ | 967 public: \ |
949 virtual ~type(); \ | 968 virtual ~type(); \ |
950 private: | 969 private: |
951 | 970 |
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1183 struct ParamStorageTraits<T*> : public PointerParamStorageTraits<T*, WebCore::Is
GarbageCollectedType<T>::value> { | 1202 struct ParamStorageTraits<T*> : public PointerParamStorageTraits<T*, WebCore::Is
GarbageCollectedType<T>::value> { |
1184 }; | 1203 }; |
1185 | 1204 |
1186 template<typename T> | 1205 template<typename T> |
1187 struct ParamStorageTraits<RawPtr<T> > : public PointerParamStorageTraits<T*, Web
Core::IsGarbageCollectedType<T>::value> { | 1206 struct ParamStorageTraits<RawPtr<T> > : public PointerParamStorageTraits<T*, Web
Core::IsGarbageCollectedType<T>::value> { |
1188 }; | 1207 }; |
1189 | 1208 |
1190 } // namespace WTF | 1209 } // namespace WTF |
1191 | 1210 |
1192 #endif | 1211 #endif |
OLD | NEW |