1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef TRACE_COLLECTIONS_H_ 6 #define TRACE_COLLECTIONS_H_ 7 8 #include "heap/stubs.h" 9 10 namespace WebCore { 11 12 class HeapObject : public GarbageCollected<HeapObject> { 13 public: 14 void trace(Visitor*); 15 private: 16 HeapVector<Member<HeapObject> > m_heapVector; 17 Vector<Member<HeapObject>, 0, HeapAllocator> m_wtfVector; 18 19 HeapDeque<Member<HeapObject> > m_heapDeque; 20 Deque<Member<HeapObject>, 0, HeapAllocator> m_wtfDeque; 21 22 HeapHashSet<Member<HeapObject> > m_heapSet; 23 HashSet<Member<HeapObject>, void, HeapAllocator> m_wtfSet; 24 25 HeapListHashSet<Member<HeapObject> > m_heapListSet; 26 ListHashSet<Member<HeapObject>, void, HeapAllocator> m_wtfListSet; 27 28 HeapLinkedHashSet<Member<HeapObject> > m_heapLinkedSet; 29 LinkedHashSet<Member<HeapObject>, void, HeapAllocator> m_wtfLinkedSet; 30 31 HeapHashCountedSet<Member<HeapObject> > m_heapCountedSet; 32 HashCountedSet<Member<HeapObject>, void, HeapAllocator> m_wtfCountedSet; 33 34 HeapHashMap<int, Member<HeapObject> > m_heapMapKey; 35 HeapHashMap<Member<HeapObject>, int > m_heapMapVal; 36 HashMap<int, Member<HeapObject>, void, void, void, HeapAllocator> 37 m_wtfMapKey; 38 HashMap<Member<HeapObject>, int, void, void, void, HeapAllocator> 39 m_wtfMapVal; 40 }; 41 42 } 43 44 #endif 45