| Index: Source/platform/heap/Handle.h
|
| diff --git a/Source/platform/heap/Handle.h b/Source/platform/heap/Handle.h
|
| index c5ee742a7cac682862787c6b372fa1cb1160a8b4..40cf7b16b1b71d6fd465edab4b706a2a4613b293 100644
|
| --- a/Source/platform/heap/Handle.h
|
| +++ b/Source/platform/heap/Handle.h
|
| @@ -78,6 +78,7 @@ struct IsGarbageCollectedMixin {
|
| typedef WTF::IsSubclassOfTemplate5<NonConstType, HeapHashMap> HeapHashMapSubclass; \
|
| typedef WTF::IsSubclassOfTemplateTypenameSize<NonConstType, HeapVector> HeapVectorSubclass; \
|
| typedef WTF::IsSubclassOfTemplateTypenameSize<NonConstType, HeapDeque> HeapDequeSubclass; \
|
| + typedef WTF::IsSubclassOfTemplate3<NonConstType, HeapHashCountedSet> HeapHashCountedSetSubclass; \
|
| typedef WTF::IsSubclassOfTemplate<NonConstType, HeapTerminatedArray> HeapTerminatedArraySubclass; \
|
| COMPILE_ASSERT(GarbageCollectedSubclass::value || \
|
| GarbageCollectedMixinSubclass::value || \
|
| @@ -86,6 +87,7 @@ struct IsGarbageCollectedMixin {
|
| HeapHashMapSubclass::value || \
|
| HeapVectorSubclass::value || \
|
| HeapDequeSubclass::value || \
|
| + HeapHashCountedSetSubclass::value || \
|
| HeapTerminatedArraySubclass::value, \
|
| ErrorMessage); \
|
| } while (0)
|
| @@ -440,6 +442,9 @@ template<
|
| typename TraitsArg = HashTraits<ValueArg> >
|
| class PersistentHeapLinkedHashSet : public PersistentHeapCollectionBase<HeapLinkedHashSet<ValueArg, HashArg, TraitsArg> > { };
|
|
|
| +template<typename T, typename U, typename V>
|
| +class PersistentHeapHashCountedSet : public PersistentHeapCollectionBase<HeapHashCountedSet<T, U, V> > { };
|
| +
|
| template<typename T, size_t inlineCapacity = 0>
|
| class PersistentHeapVector : public PersistentHeapCollectionBase<HeapVector<T, inlineCapacity> > {
|
| public:
|
| @@ -767,6 +772,8 @@ template<typename T, typename U> inline bool operator!=(const Persistent<T>& a,
|
| #define WillBePersistentHeapVector WebCore::PersistentHeapVector
|
| #define WillBeHeapDeque WebCore::HeapDeque
|
| #define WillBePersistentHeapDeque WebCore::PersistentHeapDeque
|
| +#define WillBeHeapHashCountedSet WebCore::HeapHashCountedSet
|
| +#define WillBePersistentHeapHashCountedSet WebCore::PersistentHeapHashCountedSet
|
| #define WillBeGarbageCollectedMixin WebCore::GarbageCollectedMixin
|
| #define WillBeHeapSupplement WebCore::HeapSupplement
|
| #define WillBeHeapSupplementable WebCore::HeapSupplementable
|
| @@ -845,6 +852,8 @@ public:
|
| #define WillBePersistentHeapVector WTF::Vector
|
| #define WillBeHeapDeque WTF::Deque
|
| #define WillBePersistentHeapDeque WTF::Deque
|
| +#define WillBeHeapHeapCountedSet WTF::HeapCountedSet
|
| +#define WillBePersistentHeapHeapCountedSet WTF::HeapCountedSet
|
| #define WillBeGarbageCollectedMixin WebCore::DummyBase<void>
|
| #define WillBeHeapSupplement WebCore::Supplement
|
| #define WillBeHeapSupplementable WebCore::Supplementable
|
| @@ -1042,6 +1051,11 @@ struct NeedsTracing<Deque<T, N> > {
|
| };
|
|
|
| template<typename T, typename U, typename V>
|
| +struct NeedsTracing<HashCountedSet<T, U, V> > {
|
| + static const bool value = false;
|
| +};
|
| +
|
| +template<typename T, typename U, typename V>
|
| struct NeedsTracing<HashSet<T, U, V> > {
|
| static const bool value = false;
|
| };
|
|
|