Commit 826aa0ce authored by Bartek Nowierski's avatar Bartek Nowierski Committed by Commit Bot

ValuePeekInType should use Traits from template params

Change-Id: Iff85302bb633d9166139bde65a9b627eec13c4d5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2139951Reviewed-by: default avatarKentaro Hara <haraken@chromium.org>
Reviewed-by: default avatarOmer Katz <omerkatz@chromium.org>
Commit-Queue: Bartek Nowierski <bartekn@chromium.org>
Cr-Commit-Position: refs/heads/master@{#757725}
parent 8c9f7784
...@@ -55,7 +55,7 @@ class LinkedHashSetConstIterator; ...@@ -55,7 +55,7 @@ class LinkedHashSetConstIterator;
template <typename LinkedHashSet> template <typename LinkedHashSet>
class LinkedHashSetConstReverseIterator; class LinkedHashSetConstReverseIterator;
template <typename Value, typename HashFunctions> template <typename Value, typename HashFunctions, typename TraitsArg>
struct LinkedHashSetTranslator; struct LinkedHashSetTranslator;
template <typename Value> template <typename Value>
struct LinkedHashSetExtractor; struct LinkedHashSetExtractor;
...@@ -216,7 +216,8 @@ class LinkedHashSet { ...@@ -216,7 +216,8 @@ class LinkedHashSet {
typedef TraitsArg Traits; typedef TraitsArg Traits;
typedef LinkedHashSetNode<Value> Node; typedef LinkedHashSetNode<Value> Node;
typedef LinkedHashSetNodeBase NodeBase; typedef LinkedHashSetNodeBase NodeBase;
typedef LinkedHashSetTranslator<Value, HashFunctions> NodeHashFunctions; typedef LinkedHashSetTranslator<Value, HashFunctions, Traits>
NodeHashFunctions;
typedef LinkedHashSetTraits<Value, Traits, Allocator> NodeHashTraits; typedef LinkedHashSetTraits<Value, Traits, Allocator> NodeHashTraits;
typedef HashTable<Node, typedef HashTable<Node,
...@@ -250,7 +251,7 @@ class LinkedHashSet { ...@@ -250,7 +251,7 @@ class LinkedHashSet {
bool is_new_entry; bool is_new_entry;
}; };
typedef typename HashTraits<Value>::PeekInType ValuePeekInType; typedef typename TraitsArg::PeekInType ValuePeekInType;
LinkedHashSet(); LinkedHashSet();
LinkedHashSet(const LinkedHashSet&); LinkedHashSet(const LinkedHashSet&);
...@@ -402,12 +403,12 @@ class LinkedHashSet { ...@@ -402,12 +403,12 @@ class LinkedHashSet {
NodeBase anchor_; NodeBase anchor_;
}; };
template <typename Value, typename HashFunctions> template <typename Value, typename HashFunctions, typename TraitsArg>
struct LinkedHashSetTranslator { struct LinkedHashSetTranslator {
STATIC_ONLY(LinkedHashSetTranslator); STATIC_ONLY(LinkedHashSetTranslator);
typedef LinkedHashSetNode<Value> Node; typedef LinkedHashSetNode<Value> Node;
typedef LinkedHashSetNodeBase NodeBase; typedef LinkedHashSetNodeBase NodeBase;
typedef typename HashTraits<Value>::PeekInType ValuePeekInType; typedef typename TraitsArg::PeekInType ValuePeekInType;
static unsigned GetHash(const Node& node) { static unsigned GetHash(const Node& node) {
return HashFunctions::GetHash(node.value_); return HashFunctions::GetHash(node.value_);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment