fix a few bugs in ::RemoveAtEnd
authorMathieu Lacage <mathieu.lacage@sophia.inria.fr>
Wed, 06 Jun 2007 10:04:02 +0200
changeset 852 a1a3c9bdb7f4
parent 851 ce4de5a9dcd0
child 853 2477fe325610
fix a few bugs in ::RemoveAtEnd
src/common/packet-history.cc
--- a/src/common/packet-history.cc	Wed Jun 06 09:55:01 2007 +0200
+++ b/src/common/packet-history.cc	Wed Jun 06 10:04:02 2007 +0200
@@ -670,6 +670,7 @@
       memset (m_data->m_data, 0xff, 4);
     }
   NS_ASSERT (m_data != 0);
+  uint32_t typeUid = ((item->typeUid & 0x1) == 0x1)?item->typeUid:item->typeUid+1;
  append:
   uint8_t *start = &m_data->m_data[m_used];
   uint8_t *end = &m_data->m_data[m_data->m_size];
@@ -693,7 +694,7 @@
 
       Append16 (next, &buffer);
       Append16 (prev, &buffer);
-      if (TryToAppend (item->typeUid+1, &buffer, end) &&
+      if (TryToAppend (typeUid, &buffer, end) &&
           TryToAppend (item->size, &buffer, end) &&
           TryToAppend (item->chunkUid, &buffer, end) &&
           TryToAppend (extraItem->fragmentStart, &buffer, end) &&
@@ -734,7 +735,7 @@
         }
     }
   
-  uint32_t n = GetUleb128Size (item->typeUid+1);
+  uint32_t n = GetUleb128Size (typeUid);
   n += GetUleb128Size (item->size);
   n += GetUleb128Size (item->chunkUid);
   n += GetUleb128Size (extraItem->fragmentStart);
@@ -1074,7 +1075,7 @@
           while (current != 0xffff)
             {
               ReadItems (current, &item, &extraItem);
-              fragment.AddBig (false, &item, &extraItem);
+              fragment.AddBig (true, &item, &extraItem);
               if (current == m_head)
                 {
                   break;