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/HashFunctions.h" | 37 #include "wtf/HashFunctions.h" |
38 #include "wtf/Locker.h" | 38 #include "wtf/Locker.h" |
39 #include "wtf/RawPtr.h" | 39 #include "wtf/RawPtr.h" |
40 #include "wtf/RefCounted.h" | 40 #include "wtf/RefCounted.h" |
41 #include "wtf/TypeTraits.h" | 41 #include "wtf/TypeTraits.h" |
42 | 42 |
43 namespace WTF { | |
44 template<typename T> | |
45 class DummyBase { | |
zerny-chromium
2014/06/02 12:59:07
I think this needs a PLATFORM_EXPORT to satisfy th
sof
2014/06/02 14:25:03
That might work, but this is a template, so unclea
sof
2014/06/02 22:00:46
I've addressed the smaller problem of supporting D
| |
46 public: | |
47 DummyBase() { } | |
48 ~DummyBase() { } | |
49 }; | |
50 } | |
51 | |
43 namespace WebCore { | 52 namespace WebCore { |
44 | 53 |
45 template<typename T> class HeapTerminatedArray; | 54 template<typename T> class HeapTerminatedArray; |
46 | 55 |
47 // Template to determine if a class is a GarbageCollectedMixin by checking if it | 56 // Template to determine if a class is a GarbageCollectedMixin by checking if it |
48 // has adjustAndMark and isAlive. We can't check directly if the class is a | 57 // has adjustAndMark and isAlive. We can't check directly if the class is a |
49 // GarbageCollectedMixin because casting to it is potentially ambiguous. | 58 // GarbageCollectedMixin because casting to it is potentially ambiguous. |
50 template<typename T> | 59 template<typename T> |
51 struct IsGarbageCollectedMixin { | 60 struct IsGarbageCollectedMixin { |
52 typedef char TrueType; | 61 typedef char TrueType; |
(...skipping 810 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
863 #define WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED // do nothing when oilpan is ena bled. | 872 #define WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED // do nothing when oilpan is ena bled. |
864 #define DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(type) // do nothing | 873 #define DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(type) // do nothing |
865 #define DECLARE_EMPTY_VIRTUAL_DESTRUCTOR_WILL_BE_REMOVED(type) // do nothing | 874 #define DECLARE_EMPTY_VIRTUAL_DESTRUCTOR_WILL_BE_REMOVED(type) // do nothing |
866 #define DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(type) // do nothing | 875 #define DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(type) // do nothing |
867 | 876 |
868 #define DEFINE_STATIC_REF_WILL_BE_PERSISTENT(type, name, arguments) \ | 877 #define DEFINE_STATIC_REF_WILL_BE_PERSISTENT(type, name, arguments) \ |
869 DEFINE_STATIC_LOCAL(Persistent<type>, name, arguments) | 878 DEFINE_STATIC_LOCAL(Persistent<type>, name, arguments) |
870 | 879 |
871 #else // !ENABLE(OILPAN) | 880 #else // !ENABLE(OILPAN) |
872 | 881 |
873 template<typename T> | |
874 class DummyBase { | |
875 public: | |
876 DummyBase() { } | |
877 ~DummyBase() { } | |
878 }; | |
879 | |
880 #define PassRefPtrWillBeRawPtr WTF::PassRefPtr | 882 #define PassRefPtrWillBeRawPtr WTF::PassRefPtr |
881 #define RefCountedWillBeGarbageCollected WTF::RefCounted | 883 #define RefCountedWillBeGarbageCollected WTF::RefCounted |
882 #define RefCountedWillBeGarbageCollectedFinalized WTF::RefCounted | 884 #define RefCountedWillBeGarbageCollectedFinalized WTF::RefCounted |
883 #define RefCountedWillBeRefCountedGarbageCollected WTF::RefCounted | 885 #define RefCountedWillBeRefCountedGarbageCollected WTF::RefCounted |
884 #define ThreadSafeRefCountedWillBeGarbageCollected WTF::ThreadSafeRefCounted | 886 #define ThreadSafeRefCountedWillBeGarbageCollected WTF::ThreadSafeRefCounted |
885 #define ThreadSafeRefCountedWillBeGarbageCollectedFinalized WTF::ThreadSafeRefCo unted | 887 #define ThreadSafeRefCountedWillBeGarbageCollectedFinalized WTF::ThreadSafeRefCo unted |
886 #define ThreadSafeRefCountedWillBeThreadSafeRefCountedGarbageCollected WTF::Thre adSafeRefCounted | 888 #define ThreadSafeRefCountedWillBeThreadSafeRefCountedGarbageCollected WTF::Thre adSafeRefCounted |
887 #define TreeSharedWillBeRefCountedGarbageCollected WebCore::TreeShared | 889 #define TreeSharedWillBeRefCountedGarbageCollected WebCore::TreeShared |
888 #define PersistentWillBeMember WebCore::Persistent | 890 #define PersistentWillBeMember WebCore::Persistent |
889 #define RefPtrWillBePersistent WTF::RefPtr | 891 #define RefPtrWillBePersistent WTF::RefPtr |
890 #define RefPtrWillBeRawPtr WTF::RefPtr | 892 #define RefPtrWillBeRawPtr WTF::RefPtr |
891 #define RefPtrWillBeMember WTF::RefPtr | 893 #define RefPtrWillBeMember WTF::RefPtr |
892 #define RefPtrWillBeWeakMember WTF::RefPtr | 894 #define RefPtrWillBeWeakMember WTF::RefPtr |
893 #define RefPtrWillBeCrossThreadPersistent WTF::RefPtr | 895 #define RefPtrWillBeCrossThreadPersistent WTF::RefPtr |
894 #define RawPtrWillBeMember WTF::RawPtr | 896 #define RawPtrWillBeMember WTF::RawPtr |
895 #define RawPtrWillBeWeakMember WTF::RawPtr | 897 #define RawPtrWillBeWeakMember WTF::RawPtr |
896 #define OwnPtrWillBeMember WTF::OwnPtr | 898 #define OwnPtrWillBeMember WTF::OwnPtr |
897 #define OwnPtrWillBePersistent WTF::OwnPtr | 899 #define OwnPtrWillBePersistent WTF::OwnPtr |
898 #define OwnPtrWillBeRawPtr WTF::OwnPtr | 900 #define OwnPtrWillBeRawPtr WTF::OwnPtr |
899 #define PassOwnPtrWillBeRawPtr WTF::PassOwnPtr | 901 #define PassOwnPtrWillBeRawPtr WTF::PassOwnPtr |
900 #define WeakPtrWillBeMember WTF::WeakPtr | 902 #define WeakPtrWillBeMember WTF::WeakPtr |
901 #define WeakPtrWillBeRawPtr WTF::WeakPtr | 903 #define WeakPtrWillBeRawPtr WTF::WeakPtr |
902 #define WeakPtrWillBeWeakMember WTF::WeakPtr | 904 #define WeakPtrWillBeWeakMember WTF::WeakPtr |
903 #define NoBaseWillBeGarbageCollected WebCore::DummyBase | 905 #define NoBaseWillBeGarbageCollected WTF::DummyBase |
904 #define NoBaseWillBeGarbageCollectedFinalized WebCore::DummyBase | 906 #define NoBaseWillBeGarbageCollectedFinalized WTF::DummyBase |
905 #define NoBaseWillBeRefCountedGarbageCollected WebCore::DummyBase | 907 #define NoBaseWillBeRefCountedGarbageCollected WTF::DummyBase |
906 #define WillBeHeapHashMap WTF::HashMap | 908 #define WillBeHeapHashMap WTF::HashMap |
907 #define WillBePersistentHeapHashMap WTF::HashMap | 909 #define WillBePersistentHeapHashMap WTF::HashMap |
908 #define WillBeHeapHashSet WTF::HashSet | 910 #define WillBeHeapHashSet WTF::HashSet |
909 #define WillBePersistentHeapHashSet WTF::HashSet | 911 #define WillBePersistentHeapHashSet WTF::HashSet |
910 #define WillBeHeapLinkedHashSet WTF::LinkedHashSet | 912 #define WillBeHeapLinkedHashSet WTF::LinkedHashSet |
911 #define WillBePersistentLinkedHeapHashSet WTF::LinkedHashSet | 913 #define WillBePersistentLinkedHeapHashSet WTF::LinkedHashSet |
912 #define WillBeHeapListHashSet WTF::ListHashSet | 914 #define WillBeHeapListHashSet WTF::ListHashSet |
913 #define WillBePersistentListHeapHashSet WTF::ListHashSet | 915 #define WillBePersistentListHeapHashSet WTF::ListHashSet |
914 #define WillBeHeapVector WTF::Vector | 916 #define WillBeHeapVector WTF::Vector |
915 #define WillBePersistentHeapVector WTF::Vector | 917 #define WillBePersistentHeapVector WTF::Vector |
916 #define WillBeHeapDeque WTF::Deque | 918 #define WillBeHeapDeque WTF::Deque |
917 #define WillBePersistentHeapDeque WTF::Deque | 919 #define WillBePersistentHeapDeque WTF::Deque |
918 #define WillBeHeapHeapCountedSet WTF::HeapCountedSet | 920 #define WillBeHeapHeapCountedSet WTF::HeapCountedSet |
919 #define WillBePersistentHeapHeapCountedSet WTF::HeapCountedSet | 921 #define WillBePersistentHeapHeapCountedSet WTF::HeapCountedSet |
920 #define WillBeGarbageCollectedMixin WebCore::DummyBase<void> | 922 #define WillBeGarbageCollectedMixin WTF::DummyBase<void> |
921 #define WillBeHeapSupplement WebCore::Supplement | 923 #define WillBeHeapSupplement WebCore::Supplement |
922 #define WillBeHeapSupplementable WebCore::Supplementable | 924 #define WillBeHeapSupplementable WebCore::Supplementable |
923 #define WillBeHeapTerminatedArray WTF::TerminatedArray | 925 #define WillBeHeapTerminatedArray WTF::TerminatedArray |
924 #define WillBeHeapTerminatedArrayBuilder WTF::TerminatedArrayBuilder | 926 #define WillBeHeapTerminatedArrayBuilder WTF::TerminatedArrayBuilder |
925 #define WillBeHeapLinkedStack WTF::LinkedStack | 927 #define WillBeHeapLinkedStack WTF::LinkedStack |
926 | 928 |
927 template<typename T> PassRefPtrWillBeRawPtr<T> adoptRefWillBeNoop(T* ptr) { retu rn adoptRef(ptr); } | 929 template<typename T> PassRefPtrWillBeRawPtr<T> adoptRefWillBeNoop(T* ptr) { retu rn adoptRef(ptr); } |
928 template<typename T> PassRefPtrWillBeRawPtr<T> adoptRefWillBeRefCountedGarbageCo llected(T* ptr) { return adoptRef(ptr); } | 930 template<typename T> PassRefPtrWillBeRawPtr<T> adoptRefWillBeRefCountedGarbageCo llected(T* ptr) { return adoptRef(ptr); } |
929 template<typename T> PassRefPtrWillBeRawPtr<T> adoptRefWillBeThreadSafeRefCounte dGarbageCollected(T* ptr) { return adoptRef(ptr); } | 931 template<typename T> PassRefPtrWillBeRawPtr<T> adoptRefWillBeThreadSafeRefCounte dGarbageCollected(T* ptr) { return adoptRef(ptr); } |
930 template<typename T> PassOwnPtrWillBeRawPtr<T> adoptPtrWillBeNoop(T* ptr) { retu rn adoptPtr(ptr); } | 932 template<typename T> PassOwnPtrWillBeRawPtr<T> adoptPtrWillBeNoop(T* ptr) { retu rn adoptPtr(ptr); } |
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1147 struct NeedsTracing<ListHashSetNode<T, WebCore::HeapListHashSetAllocator<T, inli neCapacity> > *> { | 1149 struct NeedsTracing<ListHashSetNode<T, WebCore::HeapListHashSetAllocator<T, inli neCapacity> > *> { |
1148 // All heap allocated node pointers need visiting to keep the nodes alive, | 1150 // All heap allocated node pointers need visiting to keep the nodes alive, |
1149 // regardless of whether they contain pointers to other heap allocated | 1151 // regardless of whether they contain pointers to other heap allocated |
1150 // objects. | 1152 // objects. |
1151 static const bool value = true; | 1153 static const bool value = true; |
1152 }; | 1154 }; |
1153 | 1155 |
1154 } // namespace WTF | 1156 } // namespace WTF |
1155 | 1157 |
1156 #endif | 1158 #endif |
OLD | NEW |