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;