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());