fix memory leaks for simple sample code

This commit is contained in:
Mathieu Lacage
2007-02-12 19:32:42 +01:00
parent 5b05f21261
commit 12cf66da2b
4 changed files with 27 additions and 3 deletions

View File

@@ -35,6 +35,14 @@ Arp::Arp (Node *node)
: m_node (node)
{}
Arp::~Arp ()
{
for (CacheList::const_iterator i = m_cacheList.begin (); i != m_cacheList.end (); i++)
{
delete *i;
}
}
Arp *
Arp::Copy (Node *node)
{

View File

@@ -61,6 +61,16 @@ InternetNode::InternetNode (InternetNode const &o)
SetupLoopback ();
}
InternetNode::~InternetNode ()
{
delete m_netDevices;
delete m_l3Demux;
delete m_ipv4L4Demux;
delete m_udp;
delete m_ipv4;
delete m_arp;
}
void
InternetNode::SetupLoopback (void)
{

View File

@@ -35,8 +35,9 @@ class InternetNode : public Node
{
public:
InternetNode();
InternetNode(const InternetNode&); // Copy constructor
virtual InternetNode* Copy() const;// Make a copy of this node
InternetNode(const InternetNode&);
virtual ~InternetNode ();
virtual InternetNode* Copy() const;
// Capability access
virtual NetDeviceList* GetNetDevices() const;
virtual L3Demux* GetL3Demux() const;

View File

@@ -32,7 +32,12 @@ Ipv4L4Demux::Ipv4L4Demux (Node *node)
{}
Ipv4L4Demux::~Ipv4L4Demux()
{}
{
for (L4List_t::const_iterator i = m_protocols.begin(); i != m_protocols.end(); ++i)
{
delete *i;
}
}
Ipv4L4Demux*
Ipv4L4Demux::Copy(Node *node) const
{