Convert quic::PendingStream constructor to take QuicSession reference. The constructor of quic::PendingStream takes a pointer to a QuicSession as an argument. This argument is never null. This CL converts it to take a reference instead, and changes all callers to pass in a reference. PiperOrigin-RevId: 903321481
diff --git a/quiche/quic/core/quic_session.cc b/quiche/quic/core/quic_session.cc index 15c790f..34dd4ff 100644 --- a/quiche/quic/core/quic_session.cc +++ b/quiche/quic/core/quic_session.cc
@@ -2338,7 +2338,7 @@ return nullptr; } - auto pending = std::make_unique<PendingStream>(stream_id, this); + auto pending = std::make_unique<PendingStream>(stream_id, *this); PendingStream* unowned_pending = pending.get(); pending_stream_map_[stream_id] = std::move(pending); return unowned_pending;
diff --git a/quiche/quic/core/quic_stream.cc b/quiche/quic/core/quic_stream.cc index b50371d..673a869 100644 --- a/quiche/quic/core/quic_stream.cc +++ b/quiche/quic/core/quic_stream.cc
@@ -129,26 +129,26 @@ } // namespace -PendingStream::PendingStream(QuicStreamId id, QuicSession* session) +PendingStream::PendingStream(QuicStreamId id, QuicSession& session) : id_(id), - version_(session->version()), - stream_delegate_(session), + version_(session.version()), + stream_delegate_(&session), stream_bytes_read_(0), fin_received_(false), - is_bidirectional_(QuicUtils::GetStreamType(id, session->perspective(), + is_bidirectional_(QuicUtils::GetStreamType(id, session.perspective(), /*peer_initiated = */ true, - session->version()) == + session.version()) == BIDIRECTIONAL), - connection_flow_controller_(session->flow_controller()), - flow_controller_(session, id, + connection_flow_controller_(session.flow_controller()), + flow_controller_(&session, id, /*is_connection_flow_controller*/ false, - GetReceivedFlowControlWindow(session, id), - GetInitialStreamFlowControlWindowToSend(session, id), + GetReceivedFlowControlWindow(&session, id), + GetInitialStreamFlowControlWindowToSend(&session, id), kStreamReceiveWindowLimit, - session->flow_controller()->auto_tune_receive_window(), - session->flow_controller()), + session.flow_controller()->auto_tune_receive_window(), + session.flow_controller()), sequencer_(this), - creation_time_(session->GetClock()->ApproximateNow()) { + creation_time_(session.GetClock()->ApproximateNow()) { if (is_bidirectional_) { QUIC_CODE_COUNT_N(quic_pending_stream, 3, 3); }
diff --git a/quiche/quic/core/quic_stream.h b/quiche/quic/core/quic_stream.h index 26c9155..2a11b8b 100644 --- a/quiche/quic/core/quic_stream.h +++ b/quiche/quic/core/quic_stream.h
@@ -58,7 +58,7 @@ class QUICHE_EXPORT PendingStream : public QuicStreamSequencer::StreamInterface { public: - PendingStream(QuicStreamId id, QuicSession* session); + PendingStream(QuicStreamId id, QuicSession& session); PendingStream(const PendingStream&) = delete; PendingStream(PendingStream&&) = default; ~PendingStream() override = default;
diff --git a/quiche/quic/core/quic_stream_test.cc b/quiche/quic/core/quic_stream_test.cc index 2db7d8f..e8b5cdc 100644 --- a/quiche/quic/core/quic_stream_test.cc +++ b/quiche/quic/core/quic_stream_test.cc
@@ -218,11 +218,11 @@ TEST_P(PendingStreamTest, PendingStreamStaticness) { Initialize(); - PendingStream pending(kTestPendingStreamId, session_.get()); + PendingStream pending(kTestPendingStreamId, *session_); TestStream stream(&pending, session_.get(), false); EXPECT_FALSE(stream.is_static()); - PendingStream pending2(kTestPendingStreamId + 4, session_.get()); + PendingStream pending2(kTestPendingStreamId + 4, *session_); TestStream stream2(&pending2, session_.get(), true); EXPECT_TRUE(stream2.is_static()); } @@ -230,7 +230,7 @@ TEST_P(PendingStreamTest, PendingStreamType) { Initialize(); - PendingStream pending(kTestPendingStreamId, session_.get()); + PendingStream pending(kTestPendingStreamId, *session_); TestStream stream(&pending, session_.get(), false); EXPECT_EQ(stream.type(), READ_UNIDIRECTIONAL); } @@ -241,7 +241,7 @@ QuicStreamId server_initiated_pending_stream_id = GetNthServerInitiatedUnidirectionalStreamId(session_->transport_version(), 1); - PendingStream pending(server_initiated_pending_stream_id, session_.get()); + PendingStream pending(server_initiated_pending_stream_id, *session_); TestStream stream(&pending, session_.get(), false); EXPECT_EQ(stream.type(), READ_UNIDIRECTIONAL); } @@ -249,7 +249,7 @@ TEST_P(PendingStreamTest, PendingStreamTooMuchData) { Initialize(); - PendingStream pending(kTestPendingStreamId, session_.get()); + PendingStream pending(kTestPendingStreamId, *session_); // Receive a stream frame that violates flow control: the byte offset is // higher than the receive window offset. QuicStreamFrame frame(kTestPendingStreamId, false, @@ -264,7 +264,7 @@ TEST_P(PendingStreamTest, PendingStreamTooMuchDataInRstStream) { Initialize(); - PendingStream pending1(kTestPendingStreamId, session_.get()); + PendingStream pending1(kTestPendingStreamId, *session_); // Receive a rst stream frame that violates flow control: the byte offset is // higher than the receive window offset. QuicRstStreamFrame frame1(kInvalidControlFrameId, kTestPendingStreamId, @@ -279,7 +279,7 @@ QuicStreamId bidirection_stream_id = QuicUtils::GetFirstBidirectionalStreamId( session_->transport_version(), Perspective::IS_CLIENT); - PendingStream pending2(bidirection_stream_id, session_.get()); + PendingStream pending2(bidirection_stream_id, *session_); // Receive a rst stream frame that violates flow control: the byte offset is // higher than the receive window offset. QuicRstStreamFrame frame2(kInvalidControlFrameId, bidirection_stream_id, @@ -295,7 +295,7 @@ TEST_P(PendingStreamTest, PendingStreamRstStream) { Initialize(); - PendingStream pending(kTestPendingStreamId, session_.get()); + PendingStream pending(kTestPendingStreamId, *session_); QuicStreamOffset final_byte_offset = 7; QuicRstStreamFrame frame(kInvalidControlFrameId, kTestPendingStreamId, QUIC_STREAM_CANCELLED, final_byte_offset); @@ -310,7 +310,7 @@ QuicStreamId bidirection_stream_id = QuicUtils::GetFirstBidirectionalStreamId( session_->transport_version(), Perspective::IS_CLIENT); - PendingStream pending(bidirection_stream_id, session_.get()); + PendingStream pending(bidirection_stream_id, *session_); QuicWindowUpdateFrame frame(kInvalidControlFrameId, bidirection_stream_id, kDefaultFlowControlSendWindow * 2); pending.OnWindowUpdateFrame(frame); @@ -325,7 +325,7 @@ QuicStreamId bidirection_stream_id = QuicUtils::GetFirstBidirectionalStreamId( session_->transport_version(), Perspective::IS_CLIENT); - PendingStream pending(bidirection_stream_id, session_.get()); + PendingStream pending(bidirection_stream_id, *session_); QuicResetStreamError error = QuicResetStreamError::FromInternal(QUIC_STREAM_INTERNAL_ERROR); pending.OnStopSending(error); @@ -337,7 +337,7 @@ TEST_P(PendingStreamTest, FromPendingStream) { Initialize(); - PendingStream pending(kTestPendingStreamId, session_.get()); + PendingStream pending(kTestPendingStreamId, *session_); QuicStreamFrame frame(kTestPendingStreamId, false, 2, "."); pending.OnStreamFrame(frame); @@ -358,7 +358,7 @@ TEST_P(PendingStreamTest, FromPendingStreamThenData) { Initialize(); - PendingStream pending(kTestPendingStreamId, session_.get()); + PendingStream pending(kTestPendingStreamId, *session_); QuicStreamFrame frame(kTestPendingStreamId, false, 2, "."); pending.OnStreamFrame(frame); @@ -383,7 +383,7 @@ return; } - PendingStream pending(kTestPendingStreamId, session_.get()); + PendingStream pending(kTestPendingStreamId, *session_); QuicResetStreamAtFrame rst(0, kTestPendingStreamId, QUIC_STREAM_CANCELLED, 100, 3);