Remove HpackHuffmanTable argument from HpackEncoder constructor.

Every call site calls it with ObtainHpackHuffmanTable() anyway.

PiperOrigin-RevId: 335081832
Change-Id: I089242941467484a91ceba2aa49e6c1e93a4bdc9
diff --git a/spdy/core/hpack/hpack_decoder_adapter_test.cc b/spdy/core/hpack/hpack_decoder_adapter_test.cc
index 2fe01fc..fb9bfbd 100644
--- a/spdy/core/hpack/hpack_decoder_adapter_test.cc
+++ b/spdy/core/hpack/hpack_decoder_adapter_test.cc
@@ -710,7 +710,7 @@
 // Round-tripping the header set from RFC 7541 C.3.1 should work.
 // http://httpwg.org/specs/rfc7541.html#rfc.section.C.3.1
 TEST_P(HpackDecoderAdapterTest, BasicC31) {
-  HpackEncoder encoder(ObtainHpackHuffmanTable());
+  HpackEncoder encoder;
 
   SpdyHeaderBlock expected_header_set;
   expected_header_set[":method"] = "GET";
diff --git a/spdy/core/hpack/hpack_encoder.cc b/spdy/core/hpack/hpack_encoder.cc
index 71b94a3..64d0005 100644
--- a/spdy/core/hpack/hpack_encoder.cc
+++ b/spdy/core/hpack/hpack_encoder.cc
@@ -77,9 +77,9 @@
 
 }  // namespace
 
-HpackEncoder::HpackEncoder(const HpackHuffmanTable& table)
+HpackEncoder::HpackEncoder()
     : output_stream_(),
-      huffman_table_(table),
+      huffman_table_(ObtainHpackHuffmanTable()),
       min_table_size_setting_received_(std::numeric_limits<size_t>::max()),
       listener_(NoOpListener),
       should_index_(DefaultPolicy),
diff --git a/spdy/core/hpack/hpack_encoder.h b/spdy/core/hpack/hpack_encoder.h
index 534b9e6..2455f3d 100644
--- a/spdy/core/hpack/hpack_encoder.h
+++ b/spdy/core/hpack/hpack_encoder.h
@@ -47,9 +47,7 @@
   using IndexingPolicy =
       std::function<bool(quiche::QuicheStringPiece, quiche::QuicheStringPiece)>;
 
-  // |table| is an initialized HPACK Huffman table, having an
-  // externally-managed lifetime which spans beyond HpackEncoder.
-  explicit HpackEncoder(const HpackHuffmanTable& table);
+  HpackEncoder();
   HpackEncoder(const HpackEncoder&) = delete;
   HpackEncoder& operator=(const HpackEncoder&) = delete;
   ~HpackEncoder();
diff --git a/spdy/core/hpack/hpack_encoder_test.cc b/spdy/core/hpack/hpack_encoder_test.cc
index f6f9f87..8e9a2d6 100644
--- a/spdy/core/hpack/hpack_encoder_test.cc
+++ b/spdy/core/hpack/hpack_encoder_test.cc
@@ -39,9 +39,6 @@
   bool compression_enabled() const { return encoder_->enable_compression_; }
   HpackHeaderTable* table() { return &encoder_->header_table_; }
   HpackHeaderTablePeer table_peer() { return HpackHeaderTablePeer(table()); }
-  const HpackHuffmanTable& huffman_table() const {
-    return encoder_->huffman_table_;
-  }
   void EmitString(quiche::QuicheStringPiece str) { encoder_->EmitString(str); }
   void TakeString(std::string* out) {
     encoder_->output_stream_.TakeString(out);
@@ -133,8 +130,7 @@
   typedef test::HpackEncoderPeer::Representations Representations;
 
   HpackEncoderTestBase()
-      : encoder_(ObtainHpackHuffmanTable()),
-        peer_(&encoder_),
+      : peer_(&encoder_),
         static_(peer_.table()->GetByIndex(1)),
         headers_storage_(1024 /* block size */) {}
 
@@ -190,7 +186,7 @@
     ExpectString(&expected_, value);
   }
   void ExpectString(HpackOutputStream* stream, quiche::QuicheStringPiece str) {
-    const HpackHuffmanTable& huffman_table = peer_.huffman_table();
+    const HpackHuffmanTable& huffman_table = ObtainHpackHuffmanTable();
     size_t encoded_size = peer_.compression_enabled()
                               ? huffman_table.EncodedSize(str)
                               : str.size();
diff --git a/spdy/core/hpack/hpack_round_trip_test.cc b/spdy/core/hpack/hpack_round_trip_test.cc
index c4bf037..4b5dd5b 100644
--- a/spdy/core/hpack/hpack_round_trip_test.cc
+++ b/spdy/core/hpack/hpack_round_trip_test.cc
@@ -24,8 +24,6 @@
 
 class HpackRoundTripTest : public QuicheTestWithParam<InputSizeParam> {
  protected:
-  HpackRoundTripTest() : encoder_(ObtainHpackHuffmanTable()), decoder_() {}
-
   void SetUp() override {
     // Use a small table size to tickle eviction handling.
     encoder_.ApplyHeaderTableSizeSetting(256);
diff --git a/spdy/core/spdy_framer.cc b/spdy/core/spdy_framer.cc
index 7b3d388..58ce2b9 100644
--- a/spdy/core/spdy_framer.cc
+++ b/spdy/core/spdy_framer.cc
@@ -13,7 +13,6 @@
 
 #include "net/third_party/quiche/src/http2/platform/api/http2_macros.h"
 #include "net/third_party/quiche/src/common/platform/api/quiche_ptr_util.h"
-#include "net/third_party/quiche/src/spdy/core/hpack/hpack_constants.h"
 #include "net/third_party/quiche/src/spdy/core/spdy_bitmasks.h"
 #include "net/third_party/quiche/src/spdy/core/spdy_frame_builder.h"
 #include "net/third_party/quiche/src/spdy/core/spdy_frame_reader.h"
@@ -1269,7 +1268,7 @@
 
 HpackEncoder* SpdyFramer::GetHpackEncoder() {
   if (hpack_encoder_ == nullptr) {
-    hpack_encoder_ = std::make_unique<HpackEncoder>(ObtainHpackHuffmanTable());
+    hpack_encoder_ = std::make_unique<HpackEncoder>();
     if (!compression_enabled()) {
       hpack_encoder_->DisableCompression();
     }
diff --git a/spdy/core/spdy_framer_test.cc b/spdy/core/spdy_framer_test.cc
index e36a17e..ee05143 100644
--- a/spdy/core/spdy_framer_test.cc
+++ b/spdy/core/spdy_framer_test.cc
@@ -16,7 +16,6 @@
 #include "net/third_party/quiche/src/common/platform/api/quiche_arraysize.h"
 #include "net/third_party/quiche/src/common/platform/api/quiche_test.h"
 #include "net/third_party/quiche/src/spdy/core/array_output_buffer.h"
-#include "net/third_party/quiche/src/spdy/core/hpack/hpack_constants.h"
 #include "net/third_party/quiche/src/spdy/core/mock_spdy_framer_visitor.h"
 #include "net/third_party/quiche/src/spdy/core/spdy_bitmasks.h"
 #include "net/third_party/quiche/src/spdy/core/spdy_frame_builder.h"
@@ -1106,7 +1105,7 @@
   SpdyHeaderBlock header_set;
   header_set["name"] = value;
   std::string buffer;
-  HpackEncoder encoder(ObtainHpackHuffmanTable());
+  HpackEncoder encoder;
   encoder.DisableCompression();
   encoder.EncodeHeaderSet(header_set, &buffer);
   // Frame builder with plentiful buffer size.
@@ -2311,7 +2310,7 @@
   header_block["bar"] = "foo";
   header_block["foo"] = "bar";
   auto buffer = std::make_unique<std::string>();
-  HpackEncoder encoder(ObtainHpackHuffmanTable());
+  HpackEncoder encoder;
   encoder.DisableCompression();
   encoder.EncodeHeaderSet(header_block, buffer.get());