Index: Source/platform/heap/Handle.h |
diff --git a/Source/platform/heap/Handle.h b/Source/platform/heap/Handle.h |
index 301a8bb2564bf66a103cb2ca952768135f00a8b8..44cf45d4263bded90c46cb9901e067b8074360ce 100644 |
--- a/Source/platform/heap/Handle.h |
+++ b/Source/platform/heap/Handle.h |
@@ -50,6 +50,7 @@ template<typename T> class HeapTerminatedArray; |
typedef WTF::IsSubclassOfTemplate<NonConstType, GarbageCollected> GarbageCollectedSubclass; \ |
typedef WTF::IsSubclass<NonConstType, GarbageCollectedMixin> GarbageCollectedMixinSubclass; \ |
typedef WTF::IsSubclassOfTemplate3<NonConstType, HeapHashSet> HeapHashSetSubclass; \ |
+ typedef WTF::IsSubclassOfTemplate3<NonConstType, HeapLinkedHashSet> HeapLinkedHashSetSubclass; \ |
typedef WTF::IsSubclassOfTemplate5<NonConstType, HeapHashMap> HeapHashMapSubclass; \ |
typedef WTF::IsSubclassOfTemplateTypenameSize<NonConstType, HeapVector> HeapVectorSubclass; \ |
typedef WTF::IsSubclassOfTemplateTypenameSize<NonConstType, HeapDeque> HeapDequeSubclass; \ |
@@ -57,6 +58,7 @@ template<typename T> class HeapTerminatedArray; |
COMPILE_ASSERT(GarbageCollectedSubclass::value || \ |
GarbageCollectedMixinSubclass::value || \ |
HeapHashSetSubclass::value || \ |
+ HeapLinkedHashSetSubclass::value || \ |
HeapHashMapSubclass::value || \ |
HeapVectorSubclass::value || \ |
HeapDequeSubclass::value || \ |
@@ -410,6 +412,12 @@ template< |
typename TraitsArg = HashTraits<ValueArg> > |
class PersistentHeapHashSet : public PersistentHeapCollectionBase<HeapHashSet<ValueArg, HashArg, TraitsArg> > { }; |
+template< |
+ typename ValueArg, |
+ typename HashArg = typename DefaultHash<ValueArg>::Hash, |
+ typename TraitsArg = HashTraits<ValueArg> > |
+class PersistentHeapLinkedHashSet : public PersistentHeapCollectionBase<HeapLinkedHashSet<ValueArg, HashArg, TraitsArg> > { }; |
+ |
template<typename T, size_t inlineCapacity = 0> |
class PersistentHeapVector : public PersistentHeapCollectionBase<HeapVector<T, inlineCapacity> > { |
public: |
@@ -550,7 +558,7 @@ public: |
protected: |
T* m_raw; |
- template<bool x, bool y, bool z, typename U, typename V> friend struct CollectionBackingTraceTrait; |
+ template<bool x, bool y, ShouldWeakPointersBeMarkedStrongly z, typename U, typename V> friend struct CollectionBackingTraceTrait; |
}; |
template<typename T> |
@@ -741,6 +749,8 @@ template<typename T, typename U> inline bool operator!=(const Persistent<T>& a, |
#define WillBePersistentHeapHashMap WebCore::PersistentHeapHashMap |
#define WillBeHeapHashSet WebCore::HeapHashSet |
#define WillBePersistentHeapHashSet WebCore::PersistentHeapHashSet |
+#define WillBeHeapLinkedHashSet WebCore::HeapLinkedHashSet |
+#define WillBePersistentHeapLinkedHashSet WebCore::PersistentHeapLinkedHashSet |
#define WillBeHeapVector WebCore::HeapVector |
#define WillBePersistentHeapVector WebCore::PersistentHeapVector |
#define WillBeHeapDeque WebCore::HeapDeque |
@@ -814,6 +824,8 @@ public: |
#define WillBePersistentHeapHashMap WTF::HashMap |
#define WillBeHeapHashSet WTF::HashSet |
#define WillBePersistentHeapHashSet WTF::HashSet |
+#define WillBeHeapLinkedHashSet WTF::LinkedHashSet |
+#define WillBePersistentLinkedHeapHashSet WTF::LinkedHashSet |
#define WillBeHeapVector WTF::Vector |
#define WillBePersistentHeapVector WTF::Vector |
#define WillBeHeapDeque WTF::Deque |
@@ -1014,18 +1026,23 @@ struct NeedsTracing<Deque<T, N> > { |
static const bool value = false; |
}; |
-template<typename T> |
-struct NeedsTracing<HashSet<T> > { |
+template<typename T, typename U, typename V> |
+struct NeedsTracing<HashSet<T, U, V> > { |
static const bool value = false; |
}; |
-template<typename T> |
-struct NeedsTracing<ListHashSet<T> > { |
+template<typename T, size_t U, typename V> |
+struct NeedsTracing<ListHashSet<T, U, V> > { |
static const bool value = false; |
}; |
-template<typename T, typename U> |
-struct NeedsTracing<HashMap<T, U> > { |
+template<typename T, typename U, typename V> |
+struct NeedsTracing<LinkedHashSet<T, U, V> > { |
+ static const bool value = false; |
+}; |
+ |
+template<typename T, typename U, typename V, typename W, typename X> |
+struct NeedsTracing<HashMap<T, U, V, W, X> > { |
static const bool value = false; |
}; |