fix the list iteration logic
authorMathieu Lacage <mathieu.lacage@sophia.inria.fr>
Tue, 05 Jun 2007 16:40:05 +0200
changeset 841 83a5df185d90
parent 840 e473844a60c2
child 842 ab2dd4d7951d
fix the list iteration logic
src/common/packet-history.cc
--- a/src/common/packet-history.cc	Tue Jun 05 16:36:53 2007 +0200
+++ b/src/common/packet-history.cc	Tue Jun 05 16:40:05 2007 +0200
@@ -991,7 +991,7 @@
 {
   uint32_t totalSize = 0;
   uint16_t current = m_head;
-  uint16_t end = m_tail;
+  uint16_t tail = m_tail;
   while (current != 0xffff)
     {
       const uint8_t *buffer = &m_data->m_data[current];
@@ -1012,11 +1012,11 @@
           fragmentEnd = item.size;
         }
       totalSize += fragmentEnd - fragmentStart;
-      current = item.next;
-      if (current == end)
+      if (current == tail)
         {
           break;
         }
+      current = item.next;
     }
   return totalSize;
 }
@@ -1045,11 +1045,11 @@
           struct PacketHistory::SmallItem item;
           uint32_t realSize = DoPrint (&item, buffer, data, offset, printer, os);
           offset += realSize;
-          current = item.next;
           if (current == tail)
             {
               break;
             }
+          current = item.next;
         }
     }
   else
@@ -1064,11 +1064,11 @@
           struct PacketHistory::SmallItem item;
           uint32_t realSize = DoPrint (&item, buffer, data, offset, printer, os);
           offset -= realSize;
-          current = item.prev;
           if (current == tail)
             {
               break;
             }
+          current = item.prev;
         }
     }
 }