| Index: net/quic/quic_http_stream.cc
|
| diff --git a/net/quic/quic_http_stream.cc b/net/quic/quic_http_stream.cc
|
| index db671f22e925e3313ae37f648a0e7e762eac4f1b..b355b134bb37cf258ff423dfbf54e8923af12dc2 100644
|
| --- a/net/quic/quic_http_stream.cc
|
| +++ b/net/quic/quic_http_stream.cc
|
| @@ -556,7 +556,21 @@ int QuicHttpStream::ProcessResponseHeaders(const SpdyHeaderBlock& headers) {
|
| }
|
|
|
| int QuicHttpStream::ReadAvailableData(IOBuffer* buf, int buf_len) {
|
| + // TODO(rtenneti): Temporary until crbug.com/585591 is solved.
|
| + CHECK(!read_in_progress_);
|
| + read_in_progress_ = true;
|
| + stream_->CrashIfInvalid();
|
| + stream_->set_read_in_progress(read_in_progress_);
|
| +
|
| int rv = stream_->Read(buf, buf_len);
|
| + // TODO(rtenneti): Temporary until crbug.com/585591 is solved.
|
| + CHECK(read_in_progress_);
|
| + read_in_progress_ = false;
|
| + stream_->set_read_in_progress(read_in_progress_);
|
| + // CrashIfInvalid() may not be necessary. See if |stream_| became a nullptr
|
| + // due to memory corruptions.
|
| + stream_->CrashIfInvalid();
|
| +
|
| if (stream_->IsDoneReading()) {
|
| stream_->SetDelegate(nullptr);
|
| stream_->OnFinRead();
|
| @@ -566,6 +580,11 @@ int QuicHttpStream::ReadAvailableData(IOBuffer* buf, int buf_len) {
|
| }
|
|
|
| void QuicHttpStream::ResetStream() {
|
| + // TODO(rtenneti): Temporary until crbug.com/585591 is solved.
|
| + if (read_in_progress_) {
|
| + // |stream_| is going away when Read is called. Should never happen??
|
| + CHECK(false);
|
| + }
|
| if (!stream_)
|
| return;
|
| closed_stream_received_bytes_ = stream_->stream_bytes_read();
|
|
|