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