# HG changeset patch # User Craig Dowell # Date 1255498890 25200 # Node ID 8996042990466b1eda718a848e1c02923c0add74 # Parent 9800d5479341f9b7b0e0426886b112adfd82dcab plug leaks (bug 711) diff -r 9800d5479341 -r 899604299046 src/devices/bridge/bridge-channel.cc --- 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 >::iterator iter = m_bridgedChannels.begin (); + iter != m_bridgedChannels.end (); iter++) + { + *iter = 0; + } + m_bridgedChannels.clear (); } + void BridgeChannel::AddChannel (Ptr bridgedChannel) { diff -r 9800d5479341 -r 899604299046 src/devices/mesh/dot11s/peer-management-protocol.cc --- 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 () diff -r 9800d5479341 -r 899604299046 src/devices/mesh/mesh-l2-routing-protocol.cc --- 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 diff -r 9800d5479341 -r 899604299046 src/devices/mesh/mesh-wifi-interface-mac.cc --- 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 diff -r 9800d5479341 -r 899604299046 src/devices/mesh/wifi-information-element-vector.cc --- 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 () diff -r 9800d5479341 -r 899604299046 src/devices/wifi/interference-helper.cc --- 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; } diff -r 9800d5479341 -r 899604299046 src/helper/mesh-helper.cc --- 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) { diff -r 9800d5479341 -r 899604299046 src/helper/mesh-helper.h --- 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. */