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