Index: net/quic/quic_unacked_packet_map.cc |
diff --git a/net/quic/quic_unacked_packet_map.cc b/net/quic/quic_unacked_packet_map.cc |
index dddb1f99ee26670a13651aef6cc7c8f8069f97a4..59465dd2c089c77dd2d7140d1076f5291910d224 100644 |
--- a/net/quic/quic_unacked_packet_map.cc |
+++ b/net/quic/quic_unacked_packet_map.cc |
@@ -123,7 +123,7 @@ void QuicUnackedPacketMap::TransferRetransmissionInfo( |
// encryption changes. |
if (transmission_type == ALL_INITIAL_RETRANSMISSION || |
transmission_type == ALL_UNACKED_RETRANSMISSION) { |
- RemoveAckability(transmission_info); |
+ transmission_info->is_unackable = true; |
} else { |
transmission_info->retransmission = new_packet_number; |
} |
@@ -165,12 +165,6 @@ void QuicUnackedPacketMap::RemoveRetransmittability( |
RemoveRetransmittability(info); |
} |
-void QuicUnackedPacketMap::RemoveAckability(TransmissionInfo* info) { |
- DCHECK(info->retransmittable_frames.empty()); |
- DCHECK_EQ(0u, info->retransmission); |
- info->is_unackable = true; |
-} |
- |
void QuicUnackedPacketMap::MaybeRemoveRetransmittableFrames( |
TransmissionInfo* transmission_info) { |
if (transmission_info->has_crypto_handshake) { |
@@ -260,6 +254,15 @@ void QuicUnackedPacketMap::RemoveFromInFlight(QuicPacketNumber packet_number) { |
RemoveFromInFlight(info); |
} |
+void QuicUnackedPacketMap::RestoreToInFlight(QuicPacketNumber packet_number) { |
+ DCHECK_GE(packet_number, least_unacked_); |
+ DCHECK_LT(packet_number, least_unacked_ + unacked_packets_.size()); |
+ TransmissionInfo* info = &unacked_packets_[packet_number - least_unacked_]; |
+ DCHECK(!info->is_unackable); |
+ bytes_in_flight_ += info->bytes_sent; |
+ info->in_flight = true; |
+} |
+ |
void QuicUnackedPacketMap::CancelRetransmissionsForStream( |
QuicStreamId stream_id) { |
QuicPacketNumber packet_number = least_unacked_; |