| 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 bcdbc51c00d5b3722322cf886ea1daae5945ece0..0c63614055b5b5219e85dbec0bf2ab8372b730b0 100644
|
| --- a/net/quic/quic_sent_packet_manager.cc
|
| +++ b/net/quic/quic_sent_packet_manager.cc
|
| @@ -252,6 +252,26 @@ void QuicSentPacketManager::HandleAckForSentPackets(
|
| ack_notifier_manager_.OnPacketAcked(sequence_number);
|
| }
|
|
|
| + // Discard any retransmittable frames associated with revived packets.
|
| + for (SequenceNumberSet::const_iterator revived_it =
|
| + received_info.revived_packets.begin();
|
| + revived_it != received_info.revived_packets.end(); ++revived_it) {
|
| + TransmissionInfo* transmission_info =
|
| + FindOrNull(unacked_packets_, *revived_it);
|
| + if (transmission_info == NULL) {
|
| + continue;
|
| + }
|
| + // The retransmittable frames are removed from the most recent transmission.
|
| + transmission_info =
|
| + FindOrNull(unacked_packets_,
|
| + *transmission_info->all_transmissions->rbegin());
|
| + if (transmission_info->retransmittable_frames == NULL) {
|
| + continue;
|
| + }
|
| + delete transmission_info->retransmittable_frames;
|
| + transmission_info->retransmittable_frames = NULL;
|
| + }
|
| +
|
| // If we have received a truncated ack, then we need to
|
| // clear out some previous transmissions to allow the peer
|
| // to actually ACK new packets.
|
|
|