This change plumbs an equality function object type through the quiche linked hash map type. This will enable future changes to the hashing behavior of SpdyHeaderBlock.
gfe-relnote: Adds a class template parameter with an appropriate default. No functional change intended.
PiperOrigin-RevId: 287990478
Change-Id: Icd72f36561fc31f2f7092306b960e4d8721aa774
diff --git a/spdy/core/spdy_header_block.h b/spdy/core/spdy_header_block.h
index b02284f..56ee1d5 100644
--- a/spdy/core/spdy_header_block.h
+++ b/spdy/core/spdy_header_block.h
@@ -7,6 +7,7 @@
#include <stddef.h>
+#include <functional>
#include <list>
#include <string>
#include <utility>
@@ -81,7 +82,10 @@
size_t separator_size_ = 0;
};
- typedef SpdyLinkedHashMap<SpdyStringPiece, HeaderValue, SpdyStringPieceHash>
+ typedef SpdyLinkedHashMap<SpdyStringPiece,
+ HeaderValue,
+ SpdyStringPieceHash,
+ std::equal_to<SpdyStringPiece>>
MapType;
public:
diff --git a/spdy/platform/api/spdy_containers.h b/spdy/platform/api/spdy_containers.h
index 9a90556..1449c3c 100644
--- a/spdy/platform/api/spdy_containers.h
+++ b/spdy/platform/api/spdy_containers.h
@@ -24,8 +24,8 @@
using SpdyHashSet = SpdyHashSetImpl<ElementType, Hasher, Eq>;
// A map which offers insertion-ordered iteration.
-template <typename Key, typename Value, typename Hash = SpdyHash<Key>>
-using SpdyLinkedHashMap = SpdyLinkedHashMapImpl<Key, Value, Hash>;
+template <typename Key, typename Value, typename Hash, typename Eq>
+using SpdyLinkedHashMap = SpdyLinkedHashMapImpl<Key, Value, Hash, Eq>;
// A vector optimized for small sizes. Provides the same APIs as a std::vector.
template <typename T, size_t N, typename A = std::allocator<T>>