Remove stream pointer from QuicSession::WritevData.
The session only uses the pointer to access stream_bytes_written. It could simply be replaced by a |is_retransmission| boolean. This change makes the boundary of streams and sessions clearer.
gfe-relnote: no behavior change, not protected.
PiperOrigin-RevId: 296504335
Change-Id: I349bdadadd923e9dcb5b03231ce351e4f1a25c96
diff --git a/quic/core/quic_stream.cc b/quic/core/quic_stream.cc
index ffbc7aa..03b7f4c 100644
--- a/quic/core/quic_stream.cc
+++ b/quic/core/quic_stream.cc
@@ -929,9 +929,9 @@
const bool can_bundle_fin =
retransmit_fin && (retransmission_offset + retransmission_length ==
stream_bytes_written());
- consumed = stream_delegate_->WritevData(this, id_, retransmission_length,
- retransmission_offset,
- can_bundle_fin ? FIN : NO_FIN);
+ consumed = stream_delegate_->WritevData(
+ id_, retransmission_length, retransmission_offset,
+ can_bundle_fin ? FIN : NO_FIN, /*is_retransmission*/ true);
QUIC_DVLOG(1) << ENDPOINT << "stream " << id_
<< " is forced to retransmit stream data ["
<< retransmission_offset << ", "
@@ -952,8 +952,8 @@
if (retransmit_fin) {
QUIC_DVLOG(1) << ENDPOINT << "stream " << id_
<< " retransmits fin only frame.";
- consumed =
- stream_delegate_->WritevData(this, id_, 0, stream_bytes_written(), FIN);
+ consumed = stream_delegate_->WritevData(id_, 0, stream_bytes_written(), FIN,
+ /*is_retransmission*/ true);
if (!consumed.fin_consumed) {
return false;
}
@@ -1023,8 +1023,9 @@
if (fin && add_random_padding_after_fin_) {
state = FIN_AND_PADDING;
}
- QuicConsumedData consumed_data = stream_delegate_->WritevData(
- this, id(), write_length, stream_bytes_written(), state);
+ QuicConsumedData consumed_data =
+ stream_delegate_->WritevData(id(), write_length, stream_bytes_written(),
+ state, /*is_retransmission*/ false);
OnStreamDataConsumed(consumed_data.bytes_consumed);
@@ -1098,8 +1099,8 @@
if (!send_buffer_.HasPendingRetransmission()) {
QUIC_DVLOG(1) << ENDPOINT << "stream " << id_
<< " retransmits fin only frame.";
- consumed = stream_delegate_->WritevData(this, id_, 0,
- stream_bytes_written(), FIN);
+ consumed = stream_delegate_->WritevData(id_, 0, stream_bytes_written(),
+ FIN, /*is_retransmission*/ true);
fin_lost_ = !consumed.fin_consumed;
if (fin_lost_) {
// Connection is write blocked.
@@ -1112,9 +1113,9 @@
const bool can_bundle_fin =
fin_lost_ &&
(pending.offset + pending.length == stream_bytes_written());
- consumed = stream_delegate_->WritevData(this, id_, pending.length,
- pending.offset,
- can_bundle_fin ? FIN : NO_FIN);
+ consumed = stream_delegate_->WritevData(
+ id_, pending.length, pending.offset, can_bundle_fin ? FIN : NO_FIN,
+ /*is_retransmission*/ true);
QUIC_DVLOG(1) << ENDPOINT << "stream " << id_
<< " tries to retransmit stream data [" << pending.offset
<< ", " << pending.offset + pending.length