Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2306)

Unified Diff: net/quic/quic_unacked_packet_map.cc

Issue 271443008: Minor QUIC cleanup to combine QuicUnackedPacketMap's RemovePacket and (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Sending for review Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/quic/quic_unacked_packet_map.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 ddf30eced96f2d1a6f2cd7894114065552819c14..d75991ede3eccc745d9e756aa64850a0f3e0c0b3 100644
--- a/net/quic/quic_unacked_packet_map.cc
+++ b/net/quic/quic_unacked_packet_map.cc
@@ -91,7 +91,7 @@ void QuicUnackedPacketMap::ClearPreviousRetransmissions(size_t num_to_clear) {
}
++it;
- RemovePacket(sequence_number);
+ NeuterIfPendingOrRemovePacket(sequence_number);
--num_to_clear;
}
}
@@ -119,30 +119,7 @@ void QuicUnackedPacketMap::NackPacket(QuicPacketSequenceNumber sequence_number,
it->second.nack_count = max(min_nacks, it->second.nack_count);
}
-void QuicUnackedPacketMap::RemovePacket(
- QuicPacketSequenceNumber sequence_number) {
- UnackedPacketMap::iterator it = unacked_packets_.find(sequence_number);
- if (it == unacked_packets_.end()) {
- LOG(DFATAL) << "packet is not unacked: " << sequence_number;
- return;
- }
- const TransmissionInfo& transmission_info = it->second;
- transmission_info.all_transmissions->erase(sequence_number);
- if (transmission_info.all_transmissions->empty()) {
- delete transmission_info.all_transmissions;
- }
- if (transmission_info.retransmittable_frames != NULL) {
- if (transmission_info.retransmittable_frames->HasCryptoHandshake()
- == IS_HANDSHAKE) {
- --pending_crypto_packet_count_;
- }
- delete transmission_info.retransmittable_frames;
- }
- DCHECK(!transmission_info.pending);
- unacked_packets_.erase(it);
-}
-
-void QuicUnackedPacketMap::NeuterPacket(
+void QuicUnackedPacketMap::NeuterIfPendingOrRemovePacket(
QuicPacketSequenceNumber sequence_number) {
UnackedPacketMap::iterator it = unacked_packets_.find(sequence_number);
if (it == unacked_packets_.end()) {
@@ -150,11 +127,6 @@ void QuicUnackedPacketMap::NeuterPacket(
return;
}
TransmissionInfo* transmission_info = &it->second;
- if (transmission_info->all_transmissions->size() > 1) {
- transmission_info->all_transmissions->erase(sequence_number);
- transmission_info->all_transmissions = new SequenceNumberSet();
- transmission_info->all_transmissions->insert(sequence_number);
- }
if (transmission_info->retransmittable_frames != NULL) {
if (transmission_info->retransmittable_frames->HasCryptoHandshake()
== IS_HANDSHAKE) {
@@ -163,6 +135,21 @@ void QuicUnackedPacketMap::NeuterPacket(
delete transmission_info->retransmittable_frames;
transmission_info->retransmittable_frames = NULL;
}
+ if (transmission_info->pending) {
+ // Neuter it so it can't be retransmitted.
+ if (transmission_info->all_transmissions->size() > 1) {
+ transmission_info->all_transmissions->erase(sequence_number);
+ transmission_info->all_transmissions = new SequenceNumberSet();
+ transmission_info->all_transmissions->insert(sequence_number);
+ }
+ } else {
+ // Remove it.
+ transmission_info->all_transmissions->erase(sequence_number);
+ if (transmission_info->all_transmissions->empty()) {
+ delete transmission_info->all_transmissions;
+ }
+ unacked_packets_.erase(it);
+ }
}
// static
« no previous file with comments | « net/quic/quic_unacked_packet_map.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698