OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 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 1713 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1724 #endif | 1724 #endif |
1725 }; | 1725 }; |
1726 return &info; | 1726 return &info; |
1727 } | 1727 } |
1728 }; | 1728 }; |
1729 | 1729 |
1730 template<typename ValueArg, size_t inlineCapacity, typename U> | 1730 template<typename ValueArg, size_t inlineCapacity, typename U> |
1731 struct GCInfoTrait<ListHashSet<ValueArg, inlineCapacity, U, HeapListHashSetAlloc
ator<ValueArg, inlineCapacity> > > { | 1731 struct GCInfoTrait<ListHashSet<ValueArg, inlineCapacity, U, HeapListHashSetAlloc
ator<ValueArg, inlineCapacity> > > { |
1732 static const GCInfo* get() | 1732 static const GCInfo* get() |
1733 { | 1733 { |
| 1734 typedef WTF::ListHashSet<ValueArg, inlineCapacity, U, HeapListHashSetAll
ocator<ValueArg, inlineCapacity> > TargetType; |
1734 static const GCInfo info = { | 1735 static const GCInfo info = { |
1735 TraceTrait<ListHashSet<ValueArg, inlineCapacity, U, HeapListHashSetA
llocator<ValueArg, inlineCapacity> > >::trace, | 1736 TraceTrait<TargetType>::trace, |
1736 0, | 1737 0, |
1737 false // ListHashSet needs no finalization though its backing might. | 1738 false, // ListHashSet needs no finalization though its backing might
. |
| 1739 false, // no vtable. |
| 1740 #if ENABLE(GC_TRACING) |
| 1741 TypenameStringTrait<TargetType>::get() |
| 1742 #endif |
1738 }; | 1743 }; |
1739 return &info; | 1744 return &info; |
1740 } | 1745 } |
1741 }; | 1746 }; |
1742 | 1747 |
1743 template<typename T, typename Allocator> | 1748 template<typename T, typename Allocator> |
1744 struct GCInfoTrait<WTF::ListHashSetNode<T, Allocator> > { | 1749 struct GCInfoTrait<WTF::ListHashSetNode<T, Allocator> > { |
1745 static const GCInfo* get() | 1750 static const GCInfo* get() |
1746 { | 1751 { |
| 1752 typedef WTF::ListHashSetNode<T, Allocator> TargetType; |
1747 static const GCInfo info = { | 1753 static const GCInfo info = { |
1748 TraceTrait<WTF::ListHashSetNode<T, Allocator> >::trace, | 1754 TraceTrait<TargetType>::trace, |
1749 WTF::ListHashSetNode<T, Allocator>::finalize, | 1755 TargetType::finalize, |
1750 WTF::HashTraits<T>::needsDestruction // The node needs destruction i
f its data does. | 1756 WTF::HashTraits<T>::needsDestruction, // The node needs destruction
if its data does. |
| 1757 false, // no vtable. |
| 1758 #if ENABLE(GC_TRACING) |
| 1759 TypenameStringTrait<TargetType>::get() |
| 1760 #endif |
1751 }; | 1761 }; |
1752 return &info; | 1762 return &info; |
1753 } | 1763 } |
1754 }; | 1764 }; |
1755 | 1765 |
1756 template<typename T> | 1766 template<typename T> |
1757 struct GCInfoTrait<Vector<T, 0, HeapAllocator> > { | 1767 struct GCInfoTrait<Vector<T, 0, HeapAllocator> > { |
1758 static const GCInfo* get() | 1768 static const GCInfo* get() |
1759 { | 1769 { |
1760 #if ENABLE(GC_TRACING) | 1770 #if ENABLE(GC_TRACING) |
(...skipping 432 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2193 // to export. This forces it to export all the methods from ThreadHeap. | 2203 // to export. This forces it to export all the methods from ThreadHeap. |
2194 template<> void ThreadHeap<FinalizedHeapObjectHeader>::addPageToHeap(const GCInf
o*); | 2204 template<> void ThreadHeap<FinalizedHeapObjectHeader>::addPageToHeap(const GCInf
o*); |
2195 template<> void ThreadHeap<HeapObjectHeader>::addPageToHeap(const GCInfo*); | 2205 template<> void ThreadHeap<HeapObjectHeader>::addPageToHeap(const GCInfo*); |
2196 extern template class PLATFORM_EXPORT ThreadHeap<FinalizedHeapObjectHeader>; | 2206 extern template class PLATFORM_EXPORT ThreadHeap<FinalizedHeapObjectHeader>; |
2197 extern template class PLATFORM_EXPORT ThreadHeap<HeapObjectHeader>; | 2207 extern template class PLATFORM_EXPORT ThreadHeap<HeapObjectHeader>; |
2198 #endif | 2208 #endif |
2199 | 2209 |
2200 } | 2210 } |
2201 | 2211 |
2202 #endif // Heap_h | 2212 #endif // Heap_h |
OLD | NEW |