| Index: net/spdy/spdy_headers_block_parser.cc
|
| diff --git a/net/spdy/spdy_headers_block_parser.cc b/net/spdy/spdy_headers_block_parser.cc
|
| index 0a68c6ff5748351f1b1c5a70c37ae5269518615d..fed5f59cdd54c78b73cf3ec8f401c1ca9d3a89f0 100644
|
| --- a/net/spdy/spdy_headers_block_parser.cc
|
| +++ b/net/spdy/spdy_headers_block_parser.cc
|
| @@ -64,10 +64,9 @@ std::vector<char> SpdyHeadersBlockParserReader::Remainder() {
|
| return remainder;
|
| }
|
|
|
| -SpdyHeadersBlockParser::SpdyHeadersBlockParser(KeyValueHandler* handler) :
|
| - state_(READING_HEADER_BLOCK_LEN),
|
| - remaining_key_value_pairs_for_frame_(0),
|
| - next_field_len_(0),
|
| +SpdyHeadersBlockParser::SpdyHeadersBlockParser(
|
| + SpdyHeadersHandlerInterface* handler) : state_(READING_HEADER_BLOCK_LEN),
|
| + remaining_key_value_pairs_for_frame_(0), next_field_len_(0),
|
| handler_(handler) {
|
| }
|
|
|
| @@ -112,6 +111,7 @@ void SpdyHeadersBlockParser::HandleControlFrameHeadersData(
|
| // headers block, try to do it now (succeeds if we received enough bytes).
|
| if (state_ == READING_HEADER_BLOCK_LEN) {
|
| if (ParseUInt32(&reader, &remaining_key_value_pairs_for_frame_)) {
|
| + handler_->OnHeaderBlock(remaining_key_value_pairs_for_frame_);
|
| state_ = READING_KEY_LEN;
|
| } else {
|
| headers_block_prefix_ = reader.Remainder();
|
| @@ -174,6 +174,7 @@ void SpdyHeadersBlockParser::HandleControlFrameHeadersData(
|
|
|
| // Did we finish handling the current block?
|
| if (remaining_key_value_pairs_for_frame_ == 0) {
|
| + handler_->OnHeaderBlockEnd();
|
| Reset();
|
| }
|
| }
|
|
|