--- 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);
}
}