Index: net/quic/chromium/bidirectional_stream_quic_impl.cc |
diff --git a/net/quic/chromium/bidirectional_stream_quic_impl.cc b/net/quic/chromium/bidirectional_stream_quic_impl.cc |
index 513b2e29eed3412ed7ec62b3911958b3de43f213..04278f130d8abfb5dff37e1c1281e8440a3d729e 100644 |
--- a/net/quic/chromium/bidirectional_stream_quic_impl.cc |
+++ b/net/quic/chromium/bidirectional_stream_quic_impl.cc |
@@ -73,10 +73,9 @@ void BidirectionalStreamQuicImpl::Start( |
delegate_ = delegate; |
request_info_ = request_info; |
- int rv = stream_request_.StartRequest( |
- session_, &stream_, |
- base::Bind(&BidirectionalStreamQuicImpl::OnStreamReady, |
- weak_factory_.GetWeakPtr())); |
+ stream_request_ = session_->CreateStreamRequest(); |
+ int rv = stream_request_->StartRequest(base::Bind( |
+ &BidirectionalStreamQuicImpl::OnStreamReady, weak_factory_.GetWeakPtr())); |
if (rv == OK) { |
OnStreamReady(rv); |
} else if (!was_handshake_confirmed_) { |
@@ -306,6 +305,8 @@ void BidirectionalStreamQuicImpl::OnStreamReady(int rv) { |
DCHECK_NE(ERR_IO_PENDING, rv); |
DCHECK(rv == OK || !stream_); |
if (rv == OK) { |
+ stream_ = stream_request_->ReleaseStream(); |
+ stream_request_.reset(); |
stream_->SetDelegate(this); |
if (!was_handshake_confirmed_ && request_info_->method == "POST") { |
waiting_for_confirmation_ = true; |