remove atStart arg to AddBig
authorMathieu Lacage <mathieu.lacage@sophia.inria.fr>
Thu, 07 Jun 2007 08:13:19 +0200
changeset 867 e98cde9aae4a
parent 866 7880ebff9969
child 868 390916503061
remove atStart arg to AddBig
src/common/packet-history.cc
src/common/packet-history.h
--- a/src/common/packet-history.cc	Thu Jun 07 07:39:47 2007 +0200
+++ b/src/common/packet-history.cc	Thu Jun 07 08:13:19 2007 +0200
@@ -562,6 +562,7 @@
     {
       m_data = PacketHistory::Create (10);
       memset (m_data->m_data, 0xff, 4);
+      NS_ASSERT (m_head == 0xffff && m_tail == 0xffff);
     }
   NS_ASSERT (m_data != 0);
  append:
@@ -598,7 +599,7 @@
 }
 
 uint16_t
-PacketHistory::AddBig (bool atStart,
+PacketHistory::AddBig (uint32_t next, uint32_t prev, 
                        const PacketHistory::SmallItem *item, 
                        const PacketHistory::ExtraItem *extraItem)
 {
@@ -606,6 +607,7 @@
     {
       m_data = PacketHistory::Create (10);
       memset (m_data->m_data, 0xff, 4);
+      NS_ASSERT (m_head == 0xffff && m_tail == 0xffff);
     }
   NS_ASSERT (m_data != 0);
   uint32_t typeUid = ((item->typeUid & 0x1) == 0x1)?item->typeUid:item->typeUid+1;
@@ -618,17 +620,6 @@
        m_used == m_data->m_dirtyEnd))
     {
       uint8_t *buffer = start;
-      uint16_t next, prev;
-      if (atStart)
-        {
-          next = m_head;
-          prev = 0xffff;
-        }
-      else
-        {
-          next = 0xffff;
-          prev = m_tail;
-        }
 
       Append16 (next, buffer);
       buffer += 2;
@@ -661,8 +652,8 @@
 }
 
 void
-PacketHistory::ReplaceTail (const PacketHistory::SmallItem *item, 
-                            const PacketHistory::ExtraItem *extraItem,
+PacketHistory::ReplaceTail (PacketHistory::SmallItem *item, 
+                            PacketHistory::ExtraItem *extraItem,
                             uint32_t available)
 {
   NS_ASSERT (m_data != 0);  
@@ -697,11 +688,12 @@
       struct PacketHistory::SmallItem tmpItem;
       PacketHistory::ExtraItem tmpExtraItem;
       ReadItems (current, &tmpItem, &tmpExtraItem);
-      uint16_t written = h.AddBig (false, &tmpItem, &tmpExtraItem);
+      uint16_t written = h.AddBig (0xffff, h.m_tail, 
+                                   &tmpItem, &tmpExtraItem);
       h.UpdateTail (written);
     }
   // append new tail.
-  uint16_t written = h.AddBig (false, item, extraItem);
+  uint16_t written = h.AddBig (0xffff, h.m_tail, item, extraItem);
   h.UpdateTail (written);
 
   *this = h;
@@ -958,7 +950,7 @@
       else
         {
           // append the extra items.
-          uint16_t written = AddBig (false, &item, &extraItem);
+          uint16_t written = AddBig (0xffff, m_tail, &item, &extraItem);
           UpdateTail (written);
         }
       if (current == o.m_tail)
@@ -1008,13 +1000,15 @@
           PacketHistory fragment (m_packetUid, 0);
           extraItem.fragmentStart += leftToRemove;
           leftToRemove = 0;
-          uint16_t written = fragment.AddBig (false, &item, &extraItem);
+          uint16_t written = fragment.AddBig (0xffff, fragment.m_tail,
+                                              &item, &extraItem);
           fragment.UpdateTail (written);
           current = item.next;
           while (current != 0xffff)
             {
               ReadItems (current, &item, &extraItem);
-              written = fragment.AddBig (false, &item, &extraItem);
+              written = fragment.AddBig (0xffff, fragment.m_tail,
+                                         &item, &extraItem);
               fragment.UpdateTail (written);
               if (current == m_tail)
                 {
@@ -1067,13 +1061,15 @@
           NS_ASSERT (extraItem.fragmentEnd > leftToRemove);
           extraItem.fragmentEnd -= leftToRemove;
           leftToRemove = 0;
-          uint16_t written = fragment.AddBig (true, &item, &extraItem);
+          uint16_t written = fragment.AddBig (fragment.m_head, 0xffff,
+                                              &item, &extraItem);
           fragment.UpdateHead (written);
           current = item.prev;
           while (current != 0xffff)
             {
               ReadItems (current, &item, &extraItem);
-              written = fragment.AddBig (true, &item, &extraItem);
+              written = fragment.AddBig (fragment.m_head, 0xffff,
+                                         &item, &extraItem);
               fragment.UpdateHead (written);
               if (current == m_head)
                 {
--- a/src/common/packet-history.h	Thu Jun 07 07:39:47 2007 +0200
+++ b/src/common/packet-history.h	Thu Jun 07 08:13:19 2007 +0200
@@ -99,11 +99,11 @@
   void DoRemoveTrailer (uint32_t uid, uint32_t size);
 
   uint16_t AddSmall (const PacketHistory::SmallItem *item);
-  uint16_t AddBig (bool atStart,
+  uint16_t AddBig (uint32_t head, uint32_t tail,
                    const PacketHistory::SmallItem *item, 
                    const PacketHistory::ExtraItem *extraItem);
-  void ReplaceTail (const PacketHistory::SmallItem *item, 
-                    const PacketHistory::ExtraItem *extraItem,
+  void ReplaceTail (PacketHistory::SmallItem *item, 
+                    PacketHistory::ExtraItem *extraItem,
                     uint32_t available);
   inline void UpdateHead (uint16_t written);
   inline void UpdateTail (uint16_t written);