ソースを参照

Also fix countBefore(0xFFFFFFFF) to return _num

The signed comparison in countBefore breaks for the max uint32_t value.
Even though callers now use getOutboundTotal(), the function itself
should be correct for all inputs.
Daniel Novak 5 ヶ月 前
コミット
0d87dcc989
1 ファイル変更2 行追加0 行削除
  1. 2 0
      src/helpers/StaticPoolPacketManager.cpp

+ 2 - 0
src/helpers/StaticPoolPacketManager.cpp

@@ -9,6 +9,8 @@ PacketQueue::PacketQueue(int max_entries) {
 }
 
 int PacketQueue::countBefore(uint32_t now) const {
+  if (now == 0xFFFFFFFF) return _num;  // sentinel: count all entries regardless of schedule
+
   int n = 0;
   for (int j = 0; j < _num; j++) {
     if ((int32_t)(_schedule_table[j] - now) > 0) continue;   // scheduled for future... ignore for now