| Index: net/quic/quic_sent_packet_manager.cc
|
| diff --git a/net/quic/quic_sent_packet_manager.cc b/net/quic/quic_sent_packet_manager.cc
|
| index c592e133a2c99892ae72119de8fe85efd0185618..a29e69cee9ee28cac28c4b2521dd5052d9093543 100644
|
| --- a/net/quic/quic_sent_packet_manager.cc
|
| +++ b/net/quic/quic_sent_packet_manager.cc
|
| @@ -270,6 +270,10 @@ void QuicSentPacketManager::HandleAckForSentPackets(
|
| }
|
|
|
| if (ContainsKey(ack_frame.missing_packets, sequence_number)) {
|
| + // Don't continue to increase the nack count for packets not in flight.
|
| + if (!it->in_flight) {
|
| + continue;
|
| + }
|
| // Consider it multiple nacks when there is a gap between the missing
|
| // packet and the largest observed, since the purpose of a nack
|
| // threshold is to tolerate re-ordering. This handles both StretchAcks
|
| @@ -288,7 +292,7 @@ void QuicSentPacketManager::HandleAckForSentPackets(
|
| // If data is associated with the most recent transmission of this
|
| // packet, then inform the caller.
|
| if (it->in_flight) {
|
| - packets_acked_[sequence_number] = *it;
|
| + packets_acked_.push_back(make_pair(sequence_number, *it));
|
| }
|
| MarkPacketHandled(sequence_number, *it, delta_largest_observed);
|
| }
|
| @@ -689,7 +693,7 @@ void QuicSentPacketManager::InvokeLossDetection(QuicTime time) {
|
| // should be recorded as a loss to the send algorithm, but not retransmitted
|
| // until it's known whether the FEC packet arrived.
|
| ++stats_->packets_lost;
|
| - packets_lost_[sequence_number] = transmission_info;
|
| + packets_lost_.push_back(make_pair(sequence_number, transmission_info));
|
| DVLOG(1) << ENDPOINT << "Lost packet " << sequence_number;
|
|
|
| if (transmission_info.retransmittable_frames != NULL) {
|
|
|