This change simplifies SpdyHeaderBlock and SpdyHeaderStorage, now that the underlying arena implementation does not allocate memory upon construction.
gfe-relnote: Code simplifications to classes in //third_party/spdy, no functional change; not protected.
PiperOrigin-RevId: 284805587
Change-Id: I3b0cbdda821c1f2ea89b9f880d76a3132490b196
diff --git a/spdy/core/spdy_header_block.h b/spdy/core/spdy_header_block.h
index ff5f4c9..bd575f4 100644
--- a/spdy/core/spdy_header_block.h
+++ b/spdy/core/spdy_header_block.h
@@ -8,7 +8,6 @@
#include <stddef.h>
#include <list>
-#include <memory>
#include <string>
#include <utility>
#include <vector>
@@ -51,6 +50,8 @@
HeaderValue(HeaderValue&& other);
HeaderValue& operator=(HeaderValue&& other);
+ void set_storage(SpdyHeaderStorage* storage);
+
// Copies are not.
HeaderValue(const HeaderValue& other) = delete;
HeaderValue& operator=(const HeaderValue& other) = delete;
@@ -225,14 +226,12 @@
friend class test::SpdyHeaderBlockPeer;
void AppendHeader(const SpdyStringPiece key, const SpdyStringPiece value);
- SpdyHeaderStorage* GetStorage();
SpdyStringPiece WriteKey(const SpdyStringPiece key);
size_t bytes_allocated() const;
- // SpdyStringPieces held by |map_| point to memory owned by |*storage_|.
- // |storage_| might be nullptr as long as |map_| is empty.
+ // SpdyStringPieces held by |map_| point to memory owned by |storage_|.
MapType map_;
- std::unique_ptr<SpdyHeaderStorage> storage_;
+ SpdyHeaderStorage storage_;
size_t key_size_ = 0;
size_t value_size_ = 0;