Index: net/quic/quic_fec_group.cc |
diff --git a/net/quic/quic_fec_group.cc b/net/quic/quic_fec_group.cc |
index 3d52810c9bd6809047dea7b28768e59d321264dd..b06f63ed232d9275e679a28b4c11c30774deaa89 100644 |
--- a/net/quic/quic_fec_group.cc |
+++ b/net/quic/quic_fec_group.cc |
@@ -16,13 +16,9 @@ using std::set; |
namespace net { |
-namespace { |
-const QuicPacketSequenceNumber kNoSequenceNumber = kuint64max; |
-} // namespace |
- |
QuicFecGroup::QuicFecGroup() |
- : min_protected_packet_(kNoSequenceNumber), |
- max_protected_packet_(kNoSequenceNumber), |
+ : min_protected_packet_(kInvalidPacketSequenceNumber), |
+ max_protected_packet_(kInvalidPacketSequenceNumber), |
payload_parity_len_(0), |
effective_encryption_level_(NUM_ENCRYPTION_LEVELS) { |
} |
@@ -32,11 +28,12 @@ QuicFecGroup::~QuicFecGroup() {} |
bool QuicFecGroup::Update(EncryptionLevel encryption_level, |
const QuicPacketHeader& header, |
StringPiece decrypted_payload) { |
+ DCHECK_NE(kInvalidPacketSequenceNumber, header.packet_sequence_number); |
if (ContainsKey(received_packets_, header.packet_sequence_number)) { |
return false; |
} |
- if (min_protected_packet_ != kNoSequenceNumber && |
- max_protected_packet_ != kNoSequenceNumber && |
+ if (min_protected_packet_ != kInvalidPacketSequenceNumber && |
+ max_protected_packet_ != kInvalidPacketSequenceNumber && |
(header.packet_sequence_number < min_protected_packet_ || |
header.packet_sequence_number > max_protected_packet_)) { |
DLOG(ERROR) << "FEC group does not cover received packet: " |
@@ -57,7 +54,9 @@ bool QuicFecGroup::UpdateFec( |
EncryptionLevel encryption_level, |
QuicPacketSequenceNumber fec_packet_sequence_number, |
const QuicFecData& fec) { |
- if (min_protected_packet_ != kNoSequenceNumber) { |
+ DCHECK_NE(kInvalidPacketSequenceNumber, fec_packet_sequence_number); |
+ DCHECK_NE(kInvalidPacketSequenceNumber, fec.fec_group); |
+ if (min_protected_packet_ != kInvalidPacketSequenceNumber) { |
return false; |
} |
SequenceNumberSet::const_iterator it = received_packets_.begin(); |
@@ -97,7 +96,7 @@ size_t QuicFecGroup::Revive(QuicPacketHeader* header, |
} |
// Identify the packet sequence number to be resurrected. |
- QuicPacketSequenceNumber missing = kNoSequenceNumber; |
+ QuicPacketSequenceNumber missing = kInvalidPacketSequenceNumber; |
for (QuicPacketSequenceNumber i = min_protected_packet_; |
i <= max_protected_packet_; ++i) { |
// Is this packet missing? |
@@ -106,7 +105,7 @@ size_t QuicFecGroup::Revive(QuicPacketHeader* header, |
break; |
} |
} |
- DCHECK_NE(kNoSequenceNumber, missing); |
+ DCHECK_NE(kInvalidPacketSequenceNumber, missing); |
DCHECK_LE(payload_parity_len_, decrypted_payload_len); |
if (payload_parity_len_ > decrypted_payload_len) { |
@@ -124,7 +123,7 @@ size_t QuicFecGroup::Revive(QuicPacketHeader* header, |
} |
bool QuicFecGroup::ProtectsPacketsBefore(QuicPacketSequenceNumber num) const { |
- if (max_protected_packet_ != kNoSequenceNumber) { |
+ if (max_protected_packet_ != kInvalidPacketSequenceNumber) { |
return max_protected_packet_ < num; |
} |
// Since we might not yet have received the FEC packet, we must check |
@@ -133,7 +132,7 @@ bool QuicFecGroup::ProtectsPacketsBefore(QuicPacketSequenceNumber num) const { |
} |
bool QuicFecGroup::UpdateParity(StringPiece payload) { |
- DCHECK_LE(payload.size(), kMaxPacketSize); |
+ DCHECK_GE(kMaxPacketSize, payload.size()); |
if (payload.size() > kMaxPacketSize) { |
DLOG(ERROR) << "Illegal payload size: " << payload.size(); |
return false; |
@@ -141,9 +140,8 @@ bool QuicFecGroup::UpdateParity(StringPiece payload) { |
if (payload_parity_len_ < payload.size()) { |
payload_parity_len_ = payload.size(); |
} |
- DCHECK_LE(payload.size(), kMaxPacketSize); |
if (received_packets_.empty() && |
- min_protected_packet_ == kNoSequenceNumber) { |
+ min_protected_packet_ == kInvalidPacketSequenceNumber) { |
// Initialize the parity to the value of this payload |
memcpy(payload_parity_, payload.data(), payload.size()); |
if (payload.size() < kMaxPacketSize) { |
@@ -161,10 +159,11 @@ bool QuicFecGroup::UpdateParity(StringPiece payload) { |
return true; |
} |
-size_t QuicFecGroup::NumMissingPackets() const { |
- if (min_protected_packet_ == kNoSequenceNumber) |
- return numeric_limits<size_t>::max(); |
- return static_cast<size_t>( |
+QuicPacketCount QuicFecGroup::NumMissingPackets() const { |
+ if (min_protected_packet_ == kInvalidPacketSequenceNumber) { |
+ return numeric_limits<QuicPacketCount>::max(); |
+ } |
+ return static_cast<QuicPacketCount>( |
(max_protected_packet_ - min_protected_packet_ + 1) - |
received_packets_.size()); |
} |