Make CreateIncomingStream() to take PendingStream* instead of PendingStream. PendingStream* will be passed to create QuicStream. non const pointer is used because sequencer and flow controller need to be transferred to QuicStream. This reduces uses of std::move(). gfe-relnote: refactor. No behavior change. Not flag protected. PiperOrigin-RevId: 250575271 Change-Id: I8a2897d8a8d76a3da5096bc6d643afe704125433
diff --git a/quic/core/http/quic_receive_control_stream.cc b/quic/core/http/quic_receive_control_stream.cc index b53d4e9..87476e6 100644 --- a/quic/core/http/quic_receive_control_stream.cc +++ b/quic/core/http/quic_receive_control_stream.cc
@@ -111,8 +111,8 @@ sequencer()->set_level_triggered(true); } -QuicReceiveControlStream::QuicReceiveControlStream(PendingStream pending) - : QuicStream(std::move(pending), READ_UNIDIRECTIONAL, /*is_static=*/true), +QuicReceiveControlStream::QuicReceiveControlStream(PendingStream* pending) + : QuicStream(pending, READ_UNIDIRECTIONAL, /*is_static=*/true), received_settings_length_(0), http_decoder_visitor_(new HttpDecoderVisitor(this)) { decoder_.set_visitor(http_decoder_visitor_.get());
diff --git a/quic/core/http/quic_receive_control_stream.h b/quic/core/http/quic_receive_control_stream.h index 61e4299..818a1e8 100644 --- a/quic/core/http/quic_receive_control_stream.h +++ b/quic/core/http/quic_receive_control_stream.h
@@ -22,7 +22,7 @@ explicit QuicReceiveControlStream(QuicStreamId id, QuicSpdySession* session); // Construct control stream from pending stream, the |pending| object will no // longer exist after the construction. - explicit QuicReceiveControlStream(PendingStream pending); + explicit QuicReceiveControlStream(PendingStream* pending); QuicReceiveControlStream(const QuicReceiveControlStream&) = delete; QuicReceiveControlStream& operator=(const QuicReceiveControlStream&) = delete; ~QuicReceiveControlStream() override;
diff --git a/quic/core/http/quic_server_session_base_test.cc b/quic/core/http/quic_server_session_base_test.cc index 94ebb67..7631aa2 100644 --- a/quic/core/http/quic_server_session_base_test.cc +++ b/quic/core/http/quic_server_session_base_test.cc
@@ -78,9 +78,9 @@ return stream; } - QuicSpdyStream* CreateIncomingStream(PendingStream pending) override { + QuicSpdyStream* CreateIncomingStream(PendingStream* pending) override { QuicSpdyStream* stream = new QuicSimpleServerStream( - std::move(pending), this, BIDIRECTIONAL, quic_simple_server_backend_); + pending, this, BIDIRECTIONAL, quic_simple_server_backend_); ActivateStream(QuicWrapUnique(stream)); return stream; }
diff --git a/quic/core/http/quic_spdy_client_session.cc b/quic/core/http/quic_spdy_client_session.cc index 458b8a0..9be0936 100644 --- a/quic/core/http/quic_spdy_client_session.cc +++ b/quic/core/http/quic_spdy_client_session.cc
@@ -151,9 +151,9 @@ } QuicSpdyStream* QuicSpdyClientSession::CreateIncomingStream( - PendingStream pending) { + PendingStream* pending) { QuicSpdyStream* stream = - new QuicSpdyClientStream(std::move(pending), this, READ_UNIDIRECTIONAL); + new QuicSpdyClientStream(pending, this, READ_UNIDIRECTIONAL); ActivateStream(QuicWrapUnique(stream)); return stream; }
diff --git a/quic/core/http/quic_spdy_client_session.h b/quic/core/http/quic_spdy_client_session.h index 747033a..3611c69 100644 --- a/quic/core/http/quic_spdy_client_session.h +++ b/quic/core/http/quic_spdy_client_session.h
@@ -66,7 +66,7 @@ protected: // QuicSession methods: QuicSpdyStream* CreateIncomingStream(QuicStreamId id) override; - QuicSpdyStream* CreateIncomingStream(PendingStream pending) override; + QuicSpdyStream* CreateIncomingStream(PendingStream* pending) override; // If an outgoing stream can be created, return true. bool ShouldCreateOutgoingBidirectionalStream() override; bool ShouldCreateOutgoingUnidirectionalStream() override;
diff --git a/quic/core/http/quic_spdy_client_stream.cc b/quic/core/http/quic_spdy_client_stream.cc index d4e8a69..2903b30 100644 --- a/quic/core/http/quic_spdy_client_stream.cc +++ b/quic/core/http/quic_spdy_client_stream.cc
@@ -28,10 +28,10 @@ session_(session), has_preliminary_headers_(false) {} -QuicSpdyClientStream::QuicSpdyClientStream(PendingStream pending, +QuicSpdyClientStream::QuicSpdyClientStream(PendingStream* pending, QuicSpdyClientSession* session, StreamType type) - : QuicSpdyStream(std::move(pending), session, type), + : QuicSpdyStream(pending, session, type), content_length_(-1), response_code_(0), header_bytes_read_(0),
diff --git a/quic/core/http/quic_spdy_client_stream.h b/quic/core/http/quic_spdy_client_stream.h index ba59ca6..9c94b70 100644 --- a/quic/core/http/quic_spdy_client_stream.h +++ b/quic/core/http/quic_spdy_client_stream.h
@@ -24,7 +24,7 @@ QuicSpdyClientStream(QuicStreamId id, QuicSpdyClientSession* session, StreamType type); - QuicSpdyClientStream(PendingStream pending, + QuicSpdyClientStream(PendingStream* pending, QuicSpdyClientSession* spdy_session, StreamType type); QuicSpdyClientStream(const QuicSpdyClientStream&) = delete;
diff --git a/quic/core/http/quic_spdy_server_stream_base.cc b/quic/core/http/quic_spdy_server_stream_base.cc index cbe479e..2e2e2ec 100644 --- a/quic/core/http/quic_spdy_server_stream_base.cc +++ b/quic/core/http/quic_spdy_server_stream_base.cc
@@ -15,10 +15,10 @@ StreamType type) : QuicSpdyStream(id, session, type) {} -QuicSpdyServerStreamBase::QuicSpdyServerStreamBase(PendingStream pending, +QuicSpdyServerStreamBase::QuicSpdyServerStreamBase(PendingStream* pending, QuicSpdySession* session, StreamType type) - : QuicSpdyStream(std::move(pending), session, type) {} + : QuicSpdyStream(pending, session, type) {} void QuicSpdyServerStreamBase::CloseWriteSide() { if (!fin_received() && !rst_received() && sequencer()->ignore_read_data() &&
diff --git a/quic/core/http/quic_spdy_server_stream_base.h b/quic/core/http/quic_spdy_server_stream_base.h index 438d152..ad0d326 100644 --- a/quic/core/http/quic_spdy_server_stream_base.h +++ b/quic/core/http/quic_spdy_server_stream_base.h
@@ -14,7 +14,7 @@ QuicSpdyServerStreamBase(QuicStreamId id, QuicSpdySession* session, StreamType type); - QuicSpdyServerStreamBase(PendingStream pending, + QuicSpdyServerStreamBase(PendingStream* pending, QuicSpdySession* session, StreamType type); QuicSpdyServerStreamBase(const QuicSpdyServerStreamBase&) = delete;
diff --git a/quic/core/http/quic_spdy_session.cc b/quic/core/http/quic_spdy_session.cc index 35b2d5e..13a9fa2 100644 --- a/quic/core/http/quic_spdy_session.cc +++ b/quic/core/http/quic_spdy_session.cc
@@ -754,7 +754,7 @@ // TODO(renjietang): Create incoming control stream. break; case kServerPushStream: { // Push Stream. - QuicSpdyStream* stream = CreateIncomingStream(std::move(*pending)); + QuicSpdyStream* stream = CreateIncomingStream(pending); stream->SetUnblocked(); return true; }
diff --git a/quic/core/http/quic_spdy_session.h b/quic/core/http/quic_spdy_session.h index d0978c1..5af73f1 100644 --- a/quic/core/http/quic_spdy_session.h +++ b/quic/core/http/quic_spdy_session.h
@@ -184,7 +184,7 @@ // CreateOutgoingUnidirectionalStream() with QuicSpdyStream return type to // make sure that all data streams are QuicSpdyStreams. QuicSpdyStream* CreateIncomingStream(QuicStreamId id) override = 0; - QuicSpdyStream* CreateIncomingStream(PendingStream pending) override = 0; + QuicSpdyStream* CreateIncomingStream(PendingStream* pending) override = 0; virtual QuicSpdyStream* CreateOutgoingBidirectionalStream() = 0; virtual QuicSpdyStream* CreateOutgoingUnidirectionalStream() = 0;
diff --git a/quic/core/http/quic_spdy_session_test.cc b/quic/core/http/quic_spdy_session_test.cc index 942688a..5b9a6af 100644 --- a/quic/core/http/quic_spdy_session_test.cc +++ b/quic/core/http/quic_spdy_session_test.cc
@@ -119,8 +119,8 @@ TestStream(QuicStreamId id, QuicSpdySession* session, StreamType type) : QuicSpdyStream(id, session, type) {} - TestStream(PendingStream pending, QuicSpdySession* session, StreamType type) - : QuicSpdyStream(std::move(pending), session, type) {} + TestStream(PendingStream* pending, QuicSpdySession* session, StreamType type) + : QuicSpdyStream(pending, session, type) {} using QuicStream::CloseWriteSide; @@ -192,10 +192,10 @@ } } - TestStream* CreateIncomingStream(PendingStream pending) override { - QuicStreamId id = pending.id(); + TestStream* CreateIncomingStream(PendingStream* pending) override { + QuicStreamId id = pending->id(); TestStream* stream = - new TestStream(std::move(pending), this, + new TestStream(pending, this, DetermineStreamType( id, connection()->transport_version(), perspective(), /*is_incoming=*/true, BIDIRECTIONAL));
diff --git a/quic/core/http/quic_spdy_stream.cc b/quic/core/http/quic_spdy_stream.cc index d424cc0..4796c78 100644 --- a/quic/core/http/quic_spdy_stream.cc +++ b/quic/core/http/quic_spdy_stream.cc
@@ -170,10 +170,10 @@ decoder_.set_visitor(http_decoder_visitor_.get()); } -QuicSpdyStream::QuicSpdyStream(PendingStream pending, +QuicSpdyStream::QuicSpdyStream(PendingStream* pending, QuicSpdySession* spdy_session, StreamType type) - : QuicStream(std::move(pending), type, /*is_static=*/false), + : QuicStream(pending, type, /*is_static=*/false), spdy_session_(spdy_session), on_body_available_called_because_sequencer_is_closed_(false), visitor_(nullptr),
diff --git a/quic/core/http/quic_spdy_stream.h b/quic/core/http/quic_spdy_stream.h index dc0d6f5..8136d20 100644 --- a/quic/core/http/quic_spdy_stream.h +++ b/quic/core/http/quic_spdy_stream.h
@@ -61,7 +61,7 @@ QuicSpdyStream(QuicStreamId id, QuicSpdySession* spdy_session, StreamType type); - QuicSpdyStream(PendingStream pending, + QuicSpdyStream(PendingStream* pending, QuicSpdySession* spdy_session, StreamType type); QuicSpdyStream(const QuicSpdyStream&) = delete;