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 1598 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1609 // template<typename T, size_t inlineCapacity = 0> | 1609 // template<typename T, size_t inlineCapacity = 0> |
1610 // using HeapVector = Vector<T, inlineCapacity, HeapAllocator>; | 1610 // using HeapVector = Vector<T, inlineCapacity, HeapAllocator>; |
1611 // | 1611 // |
1612 // as soon as all the compilers we care about support that. | 1612 // as soon as all the compilers we care about support that. |
1613 // MSVC supports it only in MSVC 2013. | 1613 // MSVC supports it only in MSVC 2013. |
1614 template< | 1614 template< |
1615 typename KeyArg, | 1615 typename KeyArg, |
1616 typename MappedArg, | 1616 typename MappedArg, |
1617 typename HashArg = typename DefaultHash<KeyArg>::Hash, | 1617 typename HashArg = typename DefaultHash<KeyArg>::Hash, |
1618 typename KeyTraitsArg = HashTraits<KeyArg>, | 1618 typename KeyTraitsArg = HashTraits<KeyArg>, |
1619 typename MappedTraitsArg = HashTraits<MappedArg> > | 1619 typename MappedTraitsArg = HashTraits<MappedArg>> |
1620 class HeapHashMap : public HashMap<KeyArg, MappedArg, HashArg, KeyTraitsArg, Map
pedTraitsArg, HeapAllocator> { }; | 1620 class HeapHashMap : public HashMap<KeyArg, MappedArg, HashArg, KeyTraitsArg, Map
pedTraitsArg, HeapAllocator> { }; |
1621 | 1621 |
1622 template< | 1622 template< |
1623 typename ValueArg, | 1623 typename ValueArg, |
1624 typename HashArg = typename DefaultHash<ValueArg>::Hash, | 1624 typename HashArg = typename DefaultHash<ValueArg>::Hash, |
1625 typename TraitsArg = HashTraits<ValueArg> > | 1625 typename TraitsArg = HashTraits<ValueArg>> |
1626 class HeapHashSet : public HashSet<ValueArg, HashArg, TraitsArg, HeapAllocator>
{ }; | 1626 class HeapHashSet : public HashSet<ValueArg, HashArg, TraitsArg, HeapAllocator>
{ }; |
1627 | 1627 |
1628 template< | 1628 template< |
1629 typename ValueArg, | 1629 typename ValueArg, |
1630 typename HashArg = typename DefaultHash<ValueArg>::Hash, | 1630 typename HashArg = typename DefaultHash<ValueArg>::Hash, |
1631 typename TraitsArg = HashTraits<ValueArg> > | 1631 typename TraitsArg = HashTraits<ValueArg>> |
1632 class HeapLinkedHashSet : public LinkedHashSet<ValueArg, HashArg, TraitsArg, Hea
pAllocator> { }; | 1632 class HeapLinkedHashSet : public LinkedHashSet<ValueArg, HashArg, TraitsArg, Hea
pAllocator> { }; |
1633 | 1633 |
1634 template< | 1634 template< |
1635 typename ValueArg, | 1635 typename ValueArg, |
1636 size_t inlineCapacity = 0, // The inlineCapacity is just a dummy to match Li
stHashSet (off-heap). | 1636 size_t inlineCapacity = 0, // The inlineCapacity is just a dummy to match Li
stHashSet (off-heap). |
1637 typename HashArg = typename DefaultHash<ValueArg>::Hash> | 1637 typename HashArg = typename DefaultHash<ValueArg>::Hash> |
1638 class HeapListHashSet : public ListHashSet<ValueArg, inlineCapacity, HashArg, He
apListHashSetAllocator<ValueArg, inlineCapacity> > { }; | 1638 class HeapListHashSet : public ListHashSet<ValueArg, inlineCapacity, HashArg, He
apListHashSetAllocator<ValueArg, inlineCapacity>> { }; |
1639 | 1639 |
1640 template< | 1640 template< |
1641 typename Value, | 1641 typename Value, |
1642 typename HashFunctions = typename DefaultHash<Value>::Hash, | 1642 typename HashFunctions = typename DefaultHash<Value>::Hash, |
1643 typename Traits = HashTraits<Value> > | 1643 typename Traits = HashTraits<Value>> |
1644 class HeapHashCountedSet : public HashCountedSet<Value, HashFunctions, Traits, H
eapAllocator> { }; | 1644 class HeapHashCountedSet : public HashCountedSet<Value, HashFunctions, Traits, H
eapAllocator> { }; |
1645 | 1645 |
1646 template<typename T, size_t inlineCapacity = 0> | 1646 template<typename T, size_t inlineCapacity = 0> |
1647 class HeapVector : public Vector<T, inlineCapacity, HeapAllocator> { | 1647 class HeapVector : public Vector<T, inlineCapacity, HeapAllocator> { |
1648 public: | 1648 public: |
1649 HeapVector() { } | 1649 HeapVector() { } |
1650 | 1650 |
1651 explicit HeapVector(size_t size) : Vector<T, inlineCapacity, HeapAllocator>(
size) | 1651 explicit HeapVector(size_t size) : Vector<T, inlineCapacity, HeapAllocator>(
size) |
1652 { | 1652 { |
1653 } | 1653 } |
(...skipping 731 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2385 } | 2385 } |
2386 } | 2386 } |
2387 | 2387 |
2388 template<typename T, typename U, typename V, typename W, typename X> | 2388 template<typename T, typename U, typename V, typename W, typename X> |
2389 struct GCInfoTrait<HeapHashMap<T, U, V, W, X>> : public GCInfoTrait<HashMap<T, U
, V, W, X, HeapAllocator>> { }; | 2389 struct GCInfoTrait<HeapHashMap<T, U, V, W, X>> : public GCInfoTrait<HashMap<T, U
, V, W, X, HeapAllocator>> { }; |
2390 template<typename T, typename U, typename V> | 2390 template<typename T, typename U, typename V> |
2391 struct GCInfoTrait<HeapHashSet<T, U, V>> : public GCInfoTrait<HashSet<T, U, V, H
eapAllocator>> { }; | 2391 struct GCInfoTrait<HeapHashSet<T, U, V>> : public GCInfoTrait<HashSet<T, U, V, H
eapAllocator>> { }; |
2392 template<typename T, typename U, typename V> | 2392 template<typename T, typename U, typename V> |
2393 struct GCInfoTrait<HeapLinkedHashSet<T, U, V>> : public GCInfoTrait<LinkedHashSe
t<T, U, V, HeapAllocator>> { }; | 2393 struct GCInfoTrait<HeapLinkedHashSet<T, U, V>> : public GCInfoTrait<LinkedHashSe
t<T, U, V, HeapAllocator>> { }; |
2394 template<typename T, size_t inlineCapacity, typename U> | 2394 template<typename T, size_t inlineCapacity, typename U> |
2395 struct GCInfoTrait<HeapListHashSet<T, inlineCapacity, U>> : public GCInfoTrait<L
istHashSet<T, inlineCapacity, U, HeapListHashSetAllocator<T, inlineCapacity>> >
{ }; | 2395 struct GCInfoTrait<HeapListHashSet<T, inlineCapacity, U>> : public GCInfoTrait<L
istHashSet<T, inlineCapacity, U, HeapListHashSetAllocator<T, inlineCapacity>>> {
}; |
2396 template<typename T, size_t inlineCapacity> | 2396 template<typename T, size_t inlineCapacity> |
2397 struct GCInfoTrait<HeapVector<T, inlineCapacity>> : public GCInfoTrait<Vector<T,
inlineCapacity, HeapAllocator>> { }; | 2397 struct GCInfoTrait<HeapVector<T, inlineCapacity>> : public GCInfoTrait<Vector<T,
inlineCapacity, HeapAllocator>> { }; |
2398 template<typename T, size_t inlineCapacity> | 2398 template<typename T, size_t inlineCapacity> |
2399 struct GCInfoTrait<HeapDeque<T, inlineCapacity>> : public GCInfoTrait<Deque<T, i
nlineCapacity, HeapAllocator>> { }; | 2399 struct GCInfoTrait<HeapDeque<T, inlineCapacity>> : public GCInfoTrait<Deque<T, i
nlineCapacity, HeapAllocator>> { }; |
2400 template<typename T, typename U, typename V> | 2400 template<typename T, typename U, typename V> |
2401 struct GCInfoTrait<HeapHashCountedSet<T, U, V>> : public GCInfoTrait<HashCounted
Set<T, U, V, HeapAllocator>> { }; | 2401 struct GCInfoTrait<HeapHashCountedSet<T, U, V>> : public GCInfoTrait<HashCounted
Set<T, U, V, HeapAllocator>> { }; |
2402 | 2402 |
2403 } // namespace blink | 2403 } // namespace blink |
2404 | 2404 |
2405 #endif // Heap_h | 2405 #endif // Heap_h |
OLD | NEW |