diff options
Diffstat (limited to 'net/quic/quic_unacked_packet_map.cc')
-rw-r--r-- | net/quic/quic_unacked_packet_map.cc | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/net/quic/quic_unacked_packet_map.cc b/net/quic/quic_unacked_packet_map.cc index b289c61..04eb1b8 100644 --- a/net/quic/quic_unacked_packet_map.cc +++ b/net/quic/quic_unacked_packet_map.cc @@ -42,28 +42,28 @@ void QuicUnackedPacketMap::AddSentPacket( QuicByteCount bytes_sent, bool set_in_flight) { QuicPacketSequenceNumber sequence_number = packet.sequence_number; - DCHECK_LT(largest_sent_packet_, sequence_number); + LOG_IF(DFATAL, largest_sent_packet_ > sequence_number); DCHECK_GE(sequence_number, least_unacked_ + unacked_packets_.size()); while (least_unacked_ + unacked_packets_.size() < sequence_number) { unacked_packets_.push_back(TransmissionInfo()); unacked_packets_.back().is_unackable = true; } - TransmissionInfo info; + TransmissionInfo info(packet.retransmittable_frames, + packet.sequence_number_length, + transmission_type, + sent_time); if (old_sequence_number == 0) { if (packet.retransmittable_frames != nullptr && packet.retransmittable_frames->HasCryptoHandshake() == IS_HANDSHAKE) { ++pending_crypto_packet_count_; } - info = TransmissionInfo(packet.retransmittable_frames, - packet.sequence_number_length); } else { - info = OnRetransmittedPacket( - old_sequence_number, sequence_number, transmission_type); + TransferRetransmissionInfo( + old_sequence_number, sequence_number, transmission_type, &info); } - info.sent_time = sent_time; - largest_sent_packet_ = max(sequence_number, largest_sent_packet_); + largest_sent_packet_ = sequence_number; if (set_in_flight) { bytes_in_flight_ += bytes_sent; info.bytes_sent = bytes_sent; @@ -82,10 +82,11 @@ void QuicUnackedPacketMap::RemoveObsoletePackets() { } } -TransmissionInfo QuicUnackedPacketMap::OnRetransmittedPacket( +void QuicUnackedPacketMap::TransferRetransmissionInfo( QuicPacketSequenceNumber old_sequence_number, QuicPacketSequenceNumber new_sequence_number, - TransmissionType transmission_type) { + TransmissionType transmission_type, + TransmissionInfo* info) { DCHECK_GE(old_sequence_number, least_unacked_); DCHECK_LT(old_sequence_number, least_unacked_ + unacked_packets_.size()); DCHECK_GE(new_sequence_number, least_unacked_ + unacked_packets_.size()); @@ -130,14 +131,10 @@ TransmissionInfo QuicUnackedPacketMap::OnRetransmittedPacket( } transmission_info->all_transmissions->push_back(new_sequence_number); } - TransmissionInfo info = - TransmissionInfo(frames, - transmission_info->sequence_number_length, - transmission_type, - transmission_info->all_transmissions); + info->retransmittable_frames = frames; + info->all_transmissions = transmission_info->all_transmissions; // Proactively remove obsolete packets so the least unacked can be raised. RemoveObsoletePackets(); - return info; } void QuicUnackedPacketMap::ClearAllPreviousRetransmissions() { |