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 eefb320842ad808629f2e5d7bd1cf7faa20cc6ec..ce595610ea5f4bae8e4403e1e5ffa39676836812 100644 |
--- a/net/quic/quic_sent_packet_manager.cc |
+++ b/net/quic/quic_sent_packet_manager.cc |
@@ -204,7 +204,7 @@ void QuicSentPacketManager::HandleAckForSentPackets( |
if (it->second.pending) { |
packets_acked_[sequence_number] = it->second; |
} |
- it = MarkPacketHandled(sequence_number, delta_largest_observed); |
+ it = MarkPacketHandled(it, delta_largest_observed); |
} |
// Discard any retransmittable frames associated with revived packets. |
@@ -226,17 +226,6 @@ void QuicSentPacketManager::RetransmitUnackedPackets( |
while (unacked_it != unacked_packets_.end()) { |
const RetransmittableFrames* frames = |
unacked_it->second.retransmittable_frames; |
- // Only mark it as handled if it can't be retransmitted and there are no |
- // pending retransmissions which would be cleared. |
- if (frames == NULL && unacked_it->second.all_transmissions->size() == 1 && |
- retransmission_type == ALL_PACKETS) { |
- unacked_it = MarkPacketHandled(unacked_it->first, |
- QuicTime::Delta::Zero()); |
- continue; |
- } |
- // If it had no other transmissions, we handle it above. If it has |
- // other transmissions, one of them must have retransmittable frames, |
- // so that gets resolved the same way as other retransmissions. |
// TODO(ianswett): Consider adding a new retransmission type which removes |
// all these old packets from unacked and retransmits them as new sequence |
// numbers with no connection to the previous ones. |
@@ -343,14 +332,12 @@ void QuicSentPacketManager::MarkPacketRevived( |
} |
QuicUnackedPacketMap::const_iterator QuicSentPacketManager::MarkPacketHandled( |
- QuicPacketSequenceNumber sequence_number, |
+ QuicUnackedPacketMap::const_iterator it, |
QuicTime::Delta delta_largest_observed) { |
- if (!unacked_packets_.IsUnacked(sequence_number)) { |
- LOG(DFATAL) << "Packet is not unacked: " << sequence_number; |
- return unacked_packets_.end(); |
- } |
- const TransmissionInfo& transmission_info = |
- unacked_packets_.GetTransmissionInfo(sequence_number); |
+ LOG_IF(DFATAL, it == unacked_packets_.end()) |
+ << "MarkPacketHandled must be passed a valid iterator entry."; |
+ const QuicPacketSequenceNumber sequence_number = it->first; |
+ const TransmissionInfo& transmission_info = it->second; |
QuicPacketSequenceNumber newest_transmission = |
*transmission_info.all_transmissions->rbegin(); |