plug leaks (bug 711) ns-3.6-RC2
authorCraig Dowell <craigdo@ee.washington.edu>
Tue, 13 Oct 2009 22:41:30 -0700
changeset 5417 899604299046
parent 5416 9800d5479341
child 5418 e2b7e37a146a
plug leaks (bug 711)
src/devices/bridge/bridge-channel.cc
src/devices/mesh/dot11s/peer-management-protocol.cc
src/devices/mesh/mesh-l2-routing-protocol.cc
src/devices/mesh/mesh-wifi-interface-mac.cc
src/devices/mesh/wifi-information-element-vector.cc
src/devices/wifi/interference-helper.cc
src/helper/mesh-helper.cc
src/helper/mesh-helper.h
--- a/src/devices/bridge/bridge-channel.cc	Tue Oct 13 12:51:46 2009 -0700
+++ b/src/devices/bridge/bridge-channel.cc	Tue Oct 13 22:41:30 2009 -0700
@@ -44,8 +44,16 @@
 BridgeChannel::~BridgeChannel ()
 {
   NS_LOG_FUNCTION_NOARGS ();
+
+  for (std::vector< Ptr<Channel> >::iterator iter = m_bridgedChannels.begin ();
+       iter != m_bridgedChannels.end (); iter++)
+    {
+      *iter = 0;
+    }
+  m_bridgedChannels.clear ();
 }
 
+
 void
 BridgeChannel::AddChannel (Ptr<Channel> bridgedChannel)
 {
--- a/src/devices/mesh/dot11s/peer-management-protocol.cc	Tue Oct 13 12:51:46 2009 -0700
+++ b/src/devices/mesh/dot11s/peer-management-protocol.cc	Tue Oct 13 22:41:30 2009 -0700
@@ -71,6 +71,7 @@
 }
 PeerManagementProtocol::~PeerManagementProtocol ()
 {
+  m_meshId = 0;
 }
 void
 PeerManagementProtocol::DoDispose ()
--- a/src/devices/mesh/mesh-l2-routing-protocol.cc	Tue Oct 13 12:51:46 2009 -0700
+++ b/src/devices/mesh/mesh-l2-routing-protocol.cc	Tue Oct 13 22:41:30 2009 -0700
@@ -39,6 +39,7 @@
 
 MeshL2RoutingProtocol::~MeshL2RoutingProtocol ()
 {
+  m_mp = 0;
 }
 
 void
--- a/src/devices/mesh/mesh-wifi-interface-mac.cc	Tue Oct 13 12:51:46 2009 -0700
+++ b/src/devices/mesh/mesh-wifi-interface-mac.cc	Tue Oct 13 22:41:30 2009 -0700
@@ -109,6 +109,10 @@
 MeshWifiInterfaceMac::~MeshWifiInterfaceMac ()
 {
   NS_LOG_FUNCTION (this);
+  m_beaconDca = 0;
+  m_stationManager = 0;
+  m_phy = 0;
+  m_low = 0;
 }
 //-----------------------------------------------------------------------------
 // WifiMac inherited
--- a/src/devices/mesh/wifi-information-element-vector.cc	Tue Oct 13 12:51:46 2009 -0700
+++ b/src/devices/mesh/wifi-information-element-vector.cc	Tue Oct 13 22:41:30 2009 -0700
@@ -48,6 +48,11 @@
 }
 WifiInformationElementVector::~WifiInformationElementVector ()
 {
+  for (IE_VECTOR::iterator i = m_elements.begin (); i != m_elements.end (); i++)
+    {
+      *i = 0;
+    }
+  m_elements.clear ();
 }
 TypeId
 WifiInformationElementVector::GetTypeId ()
--- a/src/devices/wifi/interference-helper.cc	Tue Oct 13 12:51:46 2009 -0700
+++ b/src/devices/wifi/interference-helper.cc	Tue Oct 13 22:41:30 2009 -0700
@@ -128,6 +128,7 @@
 {}
 InterferenceHelper::~InterferenceHelper ()
 {
+  EraseEvents ();
   m_errorRateModel = 0;
 }
 
--- a/src/helper/mesh-helper.cc	Tue Oct 13 12:51:46 2009 -0700
+++ b/src/helper/mesh-helper.cc	Tue Oct 13 22:41:30 2009 -0700
@@ -32,6 +32,10 @@
   m_standard (WIFI_PHY_STANDARD_80211a)
 {
 }
+MeshHelper::~MeshHelper ()
+{
+  m_stack = 0;
+}
 void
 MeshHelper::SetSpreadInterfaceChannels (enum ChannelPolicy policy)
 {
--- a/src/helper/mesh-helper.h	Tue Oct 13 12:51:46 2009 -0700
+++ b/src/helper/mesh-helper.h	Tue Oct 13 22:41:30 2009 -0700
@@ -44,6 +44,11 @@
   MeshHelper ();
 
   /**
+   * Destroy a MeshHelper.
+   */
+  ~MeshHelper ();
+
+  /**
    * \brief Set the helper to the default values for the MAC type,  remote
    * station manager and channel policy.
    */