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 0085f901fad62fd24b6f2fd99cde9e832bfbf9f9..0bc3af5ca1d8523e9fec8ff9928e135c3b36b2f6 100644 |
--- a/net/quic/quic_sent_packet_manager.cc |
+++ b/net/quic/quic_sent_packet_manager.cc |
@@ -337,7 +337,11 @@ void QuicSentPacketManager::MarkPacketRevived( |
sequence_number, delta_largest_observed); |
} |
- unacked_packets_.NeuterIfPendingOrRemovePacket(sequence_number); |
+ if (!transmission_info.pending) { |
+ unacked_packets_.RemovePacket(sequence_number); |
+ } else { |
+ unacked_packets_.NeuterPacket(sequence_number); |
+ } |
} |
QuicUnackedPacketMap::const_iterator QuicSentPacketManager::MarkPacketHandled( |
@@ -372,6 +376,8 @@ QuicUnackedPacketMap::const_iterator QuicSentPacketManager::MarkPacketHandled( |
unacked_packets_.GetTransmissionInfo(newest_transmission)); |
while (all_transmissions_it != all_transmissions.rend()) { |
QuicPacketSequenceNumber previous_transmission = *all_transmissions_it; |
+ const TransmissionInfo& transmission_info = |
+ unacked_packets_.GetTransmissionInfo(previous_transmission); |
// If this packet was marked for retransmission, don't bother retransmitting |
// it anymore. |
pending_retransmissions_.erase(previous_transmission); |
@@ -380,7 +386,11 @@ QuicUnackedPacketMap::const_iterator QuicSentPacketManager::MarkPacketHandled( |
// since they won't be acked now that one has been processed. |
unacked_packets_.SetNotPending(previous_transmission); |
} |
- unacked_packets_.NeuterIfPendingOrRemovePacket(previous_transmission); |
+ if (!transmission_info.pending) { |
+ unacked_packets_.RemovePacket(previous_transmission); |
+ } else { |
+ unacked_packets_.NeuterPacket(previous_transmission); |
+ } |
++all_transmissions_it; |
} |
@@ -591,7 +601,7 @@ void QuicSentPacketManager::InvokeLossDetection(QuicTime time) { |
// unacked_packets_. This is either the current transmission of |
// a packet whose previous transmission has been acked, or it |
// is a packet that has been TLP retransmitted. |
- unacked_packets_.NeuterIfPendingOrRemovePacket(sequence_number); |
+ unacked_packets_.RemovePacket(sequence_number); |
} |
} |
} |