Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1045)

Unified Diff: net/spdy/spdy_frame_builder.cc

Issue 2611293002: Do not use SpdyFrameBuilder::OverwriteLength(). (Closed)
Patch Set: Rebase. Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/spdy/spdy_frame_builder.h ('k') | net/spdy/spdy_framer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/spdy/spdy_frame_builder.cc
diff --git a/net/spdy/spdy_frame_builder.cc b/net/spdy/spdy_frame_builder.cc
index 5f14f78ab3e18a8bd3590e3539f4445fbe7b643c..39f0c29606e9c8d7550559bcf3ce21e800869bab 100644
--- a/net/spdy/spdy_frame_builder.cc
+++ b/net/spdy/spdy_frame_builder.cc
@@ -65,6 +65,29 @@ bool SpdyFrameBuilder::BeginNewFrame(const SpdyFramer& framer,
return success;
}
+bool SpdyFrameBuilder::BeginNewFrame(const SpdyFramer& framer,
+ SpdyFrameType type,
+ uint8_t flags,
+ SpdyStreamId stream_id,
+ size_t length) {
+ DCHECK(IsValidFrameType(SerializeFrameType(type)));
+ DCHECK_EQ(0u, stream_id & ~kStreamIdMask);
+ bool success = true;
+ SPDY_BUG_IF(framer.GetFrameMaximumSize() < length_)
+ << "Frame length " << length_
+ << " is longer than the maximum allowed length.";
+
+ offset_ += length_;
+ length_ = 0;
+
+ success &= WriteUInt24(length);
+ success &= WriteUInt8(SerializeFrameType(type));
+ success &= WriteUInt8(flags);
+ success &= WriteUInt32(stream_id);
+ DCHECK_EQ(framer.GetDataFrameMinimumSize(), length_);
+ return success;
+}
+
bool SpdyFrameBuilder::WriteStringPiece16(const base::StringPiece& value) {
if (value.size() > 0xffff) {
DCHECK(false) << "Tried to write string with length > 16bit.";
« no previous file with comments | « net/spdy/spdy_frame_builder.h ('k') | net/spdy/spdy_framer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698