| 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 563b53dfe92d1da8dd141d729b36def31d342aa4..a07de8b3a8b890f5f535de7bff141487aa91fd7c 100644
|
| --- a/net/quic/quic_unacked_packet_map.cc
|
| +++ b/net/quic/quic_unacked_packet_map.cc
|
| @@ -74,6 +74,15 @@ void QuicUnackedPacketMap::OnRetransmittedPacket(
|
| // We keep the old packet in the unacked packet list until it, or one of
|
| // the retransmissions of it are acked.
|
| transmission_info->retransmittable_frames = NULL;
|
| + // Only keep one transmission older than largest observed, because only the
|
| + // most recent is expected to possibly be a spurious retransmission.
|
| + if (transmission_info->all_transmissions->size() > 1 &&
|
| + *(++transmission_info->all_transmissions->begin()) < largest_observed_) {
|
| + QuicPacketSequenceNumber old_transmission =
|
| + *transmission_info->all_transmissions->begin();
|
| + transmission_info->all_transmissions->erase(old_transmission);
|
| + unacked_packets_.erase(old_transmission);
|
| + }
|
| unacked_packets_[new_sequence_number] =
|
| TransmissionInfo(frames,
|
| new_sequence_number,
|
|
|