| Index: net/quic/quic_ack_notifier_manager.cc
|
| diff --git a/net/quic/quic_ack_notifier_manager.cc b/net/quic/quic_ack_notifier_manager.cc
|
| index 129a951e8940d6daa1d1c975a8582bbd92ccf1b0..0d37752e211ab130f4ffcb9243ecf486e8f9ec1d 100644
|
| --- a/net/quic/quic_ack_notifier_manager.cc
|
| +++ b/net/quic/quic_ack_notifier_manager.cc
|
| @@ -34,8 +34,8 @@ void AckNotifierManager::OnPacketAcked(QuicPacketSequenceNumber sequence_number,
|
|
|
| // One or more AckNotifiers are registered as interested in this sequence
|
| // number. Iterate through them and call OnAck on each.
|
| - AckNotifierSet& ack_notifier_set = map_it->second;
|
| - for (QuicAckNotifier* ack_notifier : ack_notifier_set) {
|
| + AckNotifierList& ack_notifier_list = map_it->second;
|
| + for (QuicAckNotifier* ack_notifier : ack_notifier_list) {
|
| ack_notifier->OnAck(sequence_number, delta_largest_observed);
|
|
|
| // If this has resulted in an empty AckNotifer, erase it.
|
| @@ -50,9 +50,10 @@ void AckNotifierManager::OnPacketAcked(QuicPacketSequenceNumber sequence_number,
|
| ack_notifier_map_.erase(map_it);
|
| }
|
|
|
| -void AckNotifierManager::UpdateSequenceNumber(
|
| +void AckNotifierManager::OnPacketRetransmitted(
|
| QuicPacketSequenceNumber old_sequence_number,
|
| - QuicPacketSequenceNumber new_sequence_number) {
|
| + QuicPacketSequenceNumber new_sequence_number,
|
| + int packet_payload_size) {
|
| auto map_it = ack_notifier_map_.find(old_sequence_number);
|
| if (map_it == ack_notifier_map_.end()) {
|
| // No AckNotifiers are interested in the old sequence number.
|
| @@ -60,15 +61,14 @@ void AckNotifierManager::UpdateSequenceNumber(
|
| }
|
|
|
| // Update the existing QuicAckNotifiers to the new sequence number.
|
| - AckNotifierSet& ack_notifier_set = map_it->second;
|
| - for (QuicAckNotifier* ack_notifier : ack_notifier_set) {
|
| - ack_notifier->UpdateSequenceNumber(old_sequence_number,
|
| - new_sequence_number);
|
| + AckNotifierList& ack_notifier_list = map_it->second;
|
| + for (QuicAckNotifier* ack_notifier : ack_notifier_list) {
|
| + ack_notifier->OnPacketRetransmitted(packet_payload_size);
|
| }
|
|
|
| // The old sequence number is no longer of interest, copy the updated
|
| // AckNotifiers to the new sequence number before deleting the old.
|
| - ack_notifier_map_[new_sequence_number] = ack_notifier_set;
|
| + ack_notifier_map_[new_sequence_number] = ack_notifier_list;
|
| ack_notifier_map_.erase(map_it);
|
| }
|
|
|
| @@ -86,7 +86,7 @@ void AckNotifierManager::OnSerializedPacket(
|
|
|
| // Update the mapping in the other direction, from sequence number to
|
| // AckNotifier.
|
| - ack_notifier_map_[serialized_packet.sequence_number].insert(notifier);
|
| + ack_notifier_map_[serialized_packet.sequence_number].push_back(notifier);
|
|
|
| // Take ownership of the AckNotifier.
|
| ack_notifiers_.insert(notifier);
|
| @@ -112,7 +112,7 @@ void AckNotifierManager::OnSerializedPacket(
|
|
|
| // Update the mapping in the other direction, from sequence number to
|
| // AckNotifier.
|
| - ack_notifier_map_[serialized_packet.sequence_number].insert(notifier);
|
| + ack_notifier_map_[serialized_packet.sequence_number].push_back(notifier);
|
|
|
| // Take ownership of the AckNotifier.
|
| ack_notifiers_.insert(notifier);
|
|
|