| Index: net/quic/core/quic_headers_stream.cc
|
| diff --git a/net/quic/core/quic_headers_stream.cc b/net/quic/core/quic_headers_stream.cc
|
| index 8eca9f045ca93cfe1f64689914f19be63466fd1d..176211669ae8ef0252daa379e654d1489311fd80 100644
|
| --- a/net/quic/core/quic_headers_stream.cc
|
| +++ b/net/quic/core/quic_headers_stream.cc
|
| @@ -69,9 +69,11 @@ class ForceHolAckListener : public QuicAckListenerInterface {
|
| public:
|
| // |extra_bytes| should be initialized to the size of the HTTP/2
|
| // DATA frame header inserted when forced HOL blocking is enabled.
|
| - ForceHolAckListener(QuicAckListenerInterface* stream_ack_listener,
|
| - int extra_bytes)
|
| - : stream_ack_listener_(stream_ack_listener), extra_bytes_(extra_bytes) {
|
| + ForceHolAckListener(
|
| + scoped_refptr<QuicAckListenerInterface> stream_ack_listener,
|
| + int extra_bytes)
|
| + : stream_ack_listener_(std::move(stream_ack_listener)),
|
| + extra_bytes_(extra_bytes) {
|
| DCHECK_GE(extra_bytes, 0);
|
| }
|
|
|
| @@ -337,11 +339,12 @@ QuicHeadersStream::QuicHeadersStream(QuicSpdySession* session)
|
|
|
| QuicHeadersStream::~QuicHeadersStream() {}
|
|
|
| -size_t QuicHeadersStream::WriteHeaders(QuicStreamId stream_id,
|
| - SpdyHeaderBlock headers,
|
| - bool fin,
|
| - SpdyPriority priority,
|
| - QuicAckListenerInterface* ack_listener) {
|
| +size_t QuicHeadersStream::WriteHeaders(
|
| + QuicStreamId stream_id,
|
| + SpdyHeaderBlock headers,
|
| + bool fin,
|
| + SpdyPriority priority,
|
| + const scoped_refptr<QuicAckListenerInterface>& ack_listener) {
|
| SpdyHeadersIR headers_frame(stream_id, std::move(headers));
|
| headers_frame.set_fin(fin);
|
| if (session()->perspective() == Perspective::IS_CLIENT) {
|
| @@ -378,7 +381,7 @@ void QuicHeadersStream::WriteDataFrame(
|
| QuicStreamId id,
|
| StringPiece data,
|
| bool fin,
|
| - QuicAckListenerInterface* ack_notifier_delegate) {
|
| + const scoped_refptr<QuicAckListenerInterface>& ack_notifier_delegate) {
|
| SpdyDataIR spdy_data(id, data);
|
| spdy_data.set_fin(fin);
|
| SpdySerializedFrame frame(spdy_framer_.SerializeFrame(spdy_data));
|
| @@ -390,7 +393,7 @@ void QuicHeadersStream::WriteDataFrame(
|
| // Use buffered writes so that coherence of framing is preserved
|
| // between streams.
|
| WriteOrBufferData(StringPiece(frame.data(), frame.size()), false,
|
| - ack_listener.get());
|
| + ack_listener);
|
| }
|
|
|
| QuicConsumedData QuicHeadersStream::WritevStreamData(
|
| @@ -398,7 +401,7 @@ QuicConsumedData QuicHeadersStream::WritevStreamData(
|
| QuicIOVector iov,
|
| QuicStreamOffset offset,
|
| bool fin,
|
| - QuicAckListenerInterface* ack_notifier_delegate) {
|
| + const scoped_refptr<QuicAckListenerInterface>& ack_notifier_delegate) {
|
| const size_t max_len =
|
| kSpdyInitialFrameSizeLimit - SpdyConstants::kDataFrameMinimumSize;
|
|
|
|
|