Introduce kStaticTableSize. The HPACK static table size is set in stone, allowing us to use constexpr in code. PiperOrigin-RevId: 363173608 Change-Id: Ibcd99f0ad147711f8bd30a7421e50aa8aafa930f
diff --git a/spdy/core/hpack/hpack_header_table.cc b/spdy/core/hpack/hpack_header_table.cc index fe900b7..e720bab 100644 --- a/spdy/core/hpack/hpack_header_table.cc +++ b/spdy/core/hpack/hpack_header_table.cc
@@ -38,7 +38,7 @@ settings_size_bound_(kDefaultHeaderTableSizeSetting), size_(0), max_size_(kDefaultHeaderTableSizeSetting), - total_insertions_(static_entries_.size()) {} + total_insertions_(kStaticTableSize) {} HpackHeaderTable::~HpackHeaderTable() = default; @@ -47,10 +47,10 @@ return nullptr; } index -= 1; - if (index < static_entries_.size()) { + if (index < kStaticTableSize) { return &static_entries_[index]; } - index -= static_entries_.size(); + index -= kStaticTableSize; if (index < dynamic_entries_.size()) { return &dynamic_entries_[index]; } @@ -97,7 +97,7 @@ } else if (entry->IsStatic()) { return 1 + entry->InsertionIndex(); } else { - return total_insertions_ - entry->InsertionIndex() + static_entries_.size(); + return total_insertions_ - entry->InsertionIndex() + kStaticTableSize; } }
diff --git a/spdy/core/hpack/hpack_static_table.h b/spdy/core/hpack/hpack_static_table.h index 436ae59..09f9740 100644 --- a/spdy/core/hpack/hpack_static_table.h +++ b/spdy/core/hpack/hpack_static_table.h
@@ -12,6 +12,9 @@ struct HpackStaticEntry; +// Number of entries in the HPACK static table. +constexpr size_t kStaticTableSize = 61; + // HpackStaticTable provides |static_entries_| and |static_index_| for HPACK // encoding and decoding contexts. Once initialized, an instance is read only // and may be accessed only through its const interface. Such an instance may
diff --git a/spdy/core/hpack/hpack_static_table_test.cc b/spdy/core/hpack/hpack_static_table_test.cc index ad868b1..152ad82 100644 --- a/spdy/core/hpack/hpack_static_table_test.cc +++ b/spdy/core/hpack/hpack_static_table_test.cc
@@ -32,10 +32,10 @@ EXPECT_TRUE(table_.IsInitialized()); HpackHeaderTable::EntryTable static_entries = table_.GetStaticEntries(); - EXPECT_EQ(HpackStaticTableVector().size(), static_entries.size()); + EXPECT_EQ(kStaticTableSize, static_entries.size()); HpackHeaderTable::UnorderedEntrySet static_index = table_.GetStaticIndex(); - EXPECT_EQ(HpackStaticTableVector().size(), static_index.size()); + EXPECT_EQ(kStaticTableSize, static_index.size()); HpackHeaderTable::NameToEntryMap static_name_index = table_.GetStaticNameIndex();