Use HpackEntry::Size() instead of rolling our own in QpackDynamicTable.
(Note that QpackEntry is an alias for HpackEntry.)
I'm a little uncomfortable with HpackEntry::Size() returning size_t instead of
uint64_t, because Chromium supports platforms where size_t is uint32_t and
sometimes funny things happen, especially with UBSAN around type conversions.
The reason for returning size_t is that is string_view::size_type and
std::string::size_type. In practice we'll never deal with long strings so
this should really not be a problem.
This came up because I will need to access EntrySize() from outside
QpackHeaderTable and it makes more sense to use HpackEntry::Size() consistently
then to make EntrySize() public.
gfe-relnote: n/a, QUIC v99-only code.
PiperOrigin-RevId: 257903243
Change-Id: I354ffb46a9a6d7e2e4f2ba2d581115f6c0f4cfd5
diff --git a/quic/core/qpack/qpack_header_table.cc b/quic/core/qpack/qpack_header_table.cc
index 9522666..6fa6412 100644
--- a/quic/core/qpack/qpack_header_table.cc
+++ b/quic/core/qpack/qpack_header_table.cc
@@ -9,16 +9,6 @@
namespace quic {
-namespace {
-
-const uint64_t kEntrySizeOverhead = 32;
-
-uint64_t EntrySize(QuicStringPiece name, QuicStringPiece value) {
- return name.size() + value.size() + kEntrySizeOverhead;
-}
-
-} // anonymous namespace
-
QpackHeaderTable::QpackHeaderTable()
: static_entries_(ObtainQpackStaticTable().GetStaticEntries()),
static_index_(ObtainQpackStaticTable().GetStaticIndex()),
@@ -102,7 +92,7 @@
const QpackEntry* QpackHeaderTable::InsertEntry(QuicStringPiece name,
QuicStringPiece value) {
- const uint64_t entry_size = EntrySize(name, value);
+ const uint64_t entry_size = QpackEntry::Size(name, value);
if (entry_size > dynamic_table_capacity_) {
return nullptr;
}
@@ -193,7 +183,7 @@
DCHECK(!dynamic_entries_.empty());
QpackEntry* const entry = &dynamic_entries_.front();
- const uint64_t entry_size = EntrySize(entry->name(), entry->value());
+ const uint64_t entry_size = entry->Size();
DCHECK_GE(dynamic_table_size_, entry_size);
dynamic_table_size_ -= entry_size;