Migrates the underlying representation of QuicheLinkedHashMap from absl::node_hash_map to absl::flat_hash_map.
Pointer stability is not required in this case, and absl::flat_hash_map generally has better performance characteristics.
All QUICHE tests:
http://sponge2/2786a308-bae7-4b32-81e4-da322d534f7f
All QUICHE tests with --config=asan:
http://sponge2/1575e0be-3ae6-4b97-a5ee-932b2581509a
Protected by not practical to flag protect.
PiperOrigin-RevId: 429615873
diff --git a/common/quiche_linked_hash_map.h b/common/quiche_linked_hash_map.h
index 4aa6078..e8aafc4 100644
--- a/common/quiche_linked_hash_map.h
+++ b/common/quiche_linked_hash_map.h
@@ -22,7 +22,7 @@
#include <type_traits>
#include <utility>
-#include "absl/container/node_hash_map.h"
+#include "absl/container/flat_hash_map.h"
#include "absl/hash/hash.h"
#include "common/platform/api/quiche_export.h"
#include "common/platform/api/quiche_logging.h"
@@ -44,7 +44,7 @@
class QuicheLinkedHashMap { // QUICHE_NO_EXPORT
private:
typedef std::list<std::pair<Key, Value>> ListType;
- typedef absl::node_hash_map<Key, typename ListType::iterator, Hash, Eq>
+ typedef absl::flat_hash_map<Key, typename ListType::iterator, Hash, Eq>
MapType;
public: