Chromium Code Reviews| 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 |