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;