unconditionally set m_data
authorMathieu Lacage <mathieu.lacage@sophia.inria.fr>
Thu, 07 Jun 2007 11:00:49 +0200
changeset 872 cd19d2692521
parent 871 0451a0497ca3
child 873 2aab1eb32b12
unconditionally set m_data
src/common/packet-history.cc
src/common/packet-history.h
--- a/src/common/packet-history.cc	Thu Jun 07 10:51:25 2007 +0200
+++ b/src/common/packet-history.cc	Thu Jun 07 11:00:49 2007 +0200
@@ -645,12 +645,6 @@
 uint16_t
 PacketHistory::AddSmall (const struct PacketHistory::SmallItem *item)
 {
-  if (m_data == 0)
-    {
-      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);
 #if 1
  append:
@@ -721,12 +715,6 @@
                        const PacketHistory::SmallItem *item, 
                        const PacketHistory::ExtraItem *extraItem)
 {
-  if (m_data == 0)
-    {
-      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;
  append:
@@ -951,10 +939,6 @@
     {
       return;
     }
-  if (m_data == 0)
-    {
-      NS_FATAL_ERROR ("Removing header from empty packet.");
-    }
   struct PacketHistory::SmallItem item;
   struct PacketHistory::ExtraItem extraItem;
   ReadItems (m_head, &item, &extraItem);
@@ -999,10 +983,6 @@
     {
       return;
     }
-  if (m_data == 0)
-    {
-      NS_FATAL_ERROR ("Removing trailer from empty packet.");
-    }
   struct PacketHistory::SmallItem item;
   struct PacketHistory::ExtraItem extraItem;
   ReadItems (m_tail, &item, &extraItem);
@@ -1030,7 +1010,7 @@
     {
       return;
     }
-  if (m_data == 0 || m_tail == 0xffff)
+  if (m_tail == 0xffff)
     {
       *this = o;
       return;
@@ -1093,11 +1073,7 @@
     {
       return;
     }
-  if (m_data == 0)
-    {
-      NS_FATAL_ERROR ("Removing data from start of empty packet.");
-    }
-
+  NS_ASSERT (m_data != 0);
   uint32_t leftToRemove = start;
   uint16_t current = m_head;
   while (current != 0xffff && leftToRemove > 0)
@@ -1153,10 +1129,7 @@
     {
       return;
     }
-  if (m_data == 0)
-    {
-      NS_FATAL_ERROR ("Removing data from start of empty packet.");
-    }
+  NS_ASSERT (m_data != 0);
 
   uint32_t leftToRemove = end;
   uint16_t current = m_tail;
@@ -1282,10 +1255,7 @@
     {
       return;
     }
-  if (m_data == 0)
-    {
-      return;
-    }
+  NS_ASSERT (m_data != 0);
   NS_ASSERT (GetTotalSize () == data.GetSize ());
   if (printer.m_forward)
     {
--- a/src/common/packet-history.h	Thu Jun 07 10:51:25 2007 +0200
+++ b/src/common/packet-history.h	Thu Jun 07 11:00:49 2007 +0200
@@ -24,6 +24,7 @@
 #include <stdint.h>
 #include <vector>
 #include "ns3/callback.h"
+#include "ns3/assert.h"
 #include "packet-printer.h"
 
 namespace {
@@ -174,12 +175,13 @@
 
 
 PacketHistory::PacketHistory (uint32_t uid, uint32_t size)
-  : m_data (0),
+  : m_data (m_data = PacketHistory::Create (10)),
     m_head (0xffff),
     m_tail (0xffff),
     m_used (0),
     m_packetUid (uid)
 {
+  memset (m_data->m_data, 0xff, 4);
   if (size > 0)
     {
       DoAddHeader (0, size);
@@ -192,10 +194,8 @@
     m_used (o.m_used),
     m_packetUid (o.m_packetUid)
 {
-  if (m_data != 0) 
-    {
-      m_data->m_count++;
-    }
+  NS_ASSERT (m_data != 0);
+  m_data->m_count++;
 }
 PacketHistory &
 PacketHistory::operator = (PacketHistory const& o)
@@ -205,34 +205,28 @@
       // self assignment
       return *this;
     }
-  if (m_data != 0) 
+  NS_ASSERT (m_data != 0);
+  m_data->m_count--;
+  if (m_data->m_count == 0) 
     {
-      m_data->m_count--;
-      if (m_data->m_count == 0) 
-        {
-          PacketHistory::Recycle (m_data);
-        }
+      PacketHistory::Recycle (m_data);
     }
   m_data = o.m_data;
   m_head = o.m_head;
   m_tail = o.m_tail;
   m_used = o.m_used;
   m_packetUid = o.m_packetUid;
-  if (m_data != 0) 
-    {
-      m_data->m_count++;
-    }
+  NS_ASSERT (m_data != 0);
+  m_data->m_count++;
   return *this;
 }
 PacketHistory::~PacketHistory ()
 {
-  if (m_data != 0) 
+  NS_ASSERT (m_data != 0);
+  m_data->m_count--;
+  if (m_data->m_count == 0) 
     {
-      m_data->m_count--;
-      if (m_data->m_count == 0) 
-        {
-          PacketHistory::Recycle (m_data);
-        }
+      PacketHistory::Recycle (m_data);
     }
 }