# HG changeset patch # User Craig Dowell # Date 1255415518 25200 # Node ID 64931d3207909f58db30c82814c14175e25bba76 # Parent 00d7fe69d0247a8ca4f3b89bcccbcdd84164aa15 fix valgrind complaints (bug 711) diff -r 00d7fe69d024 -r 64931d320790 src/devices/mesh/dot11s/hwmp-protocol-mac.cc --- a/src/devices/mesh/dot11s/hwmp-protocol-mac.cc Mon Oct 12 14:01:36 2009 -0700 +++ b/src/devices/mesh/dot11s/hwmp-protocol-mac.cc Mon Oct 12 23:31:58 2009 -0700 @@ -357,7 +357,12 @@ //Send Management frame for (std::vector::const_iterator i = receivers.begin (); i != receivers.end (); i++) { - hdr.SetAddr1 (*i); + // + // 64-bit Intel valgrind complains about hdr.SetAddr1 (*i). It likes this + // just fine. + // + Mac48Address address = *i; + hdr.SetAddr1 (address); m_stats.txPerr++; m_stats.txMgt++; m_stats.txMgtBytes += packet->GetSize (); diff -r 00d7fe69d024 -r 64931d320790 src/devices/mesh/dot11s/hwmp-protocol.cc --- a/src/devices/mesh/dot11s/hwmp-protocol.cc Mon Oct 12 14:01:36 2009 -0700 +++ b/src/devices/mesh/dot11s/hwmp-protocol.cc Mon Oct 12 23:31:58 2009 -0700 @@ -274,7 +274,12 @@ for (std::vector::const_iterator i = receivers.begin (); i != receivers.end (); i ++) { Ptr packetCopy = packet->Copy(); - tag.SetAddress (*i); + // + // 64-bit Intel valgrind complains about tag.SetAddress (*i). It + // likes this just fine. + // + Mac48Address address = *i; + tag.SetAddress (address); packetCopy->AddPacketTag (tag); routeReply (true, packetCopy, source, destination, protocolType, plugin->first); } diff -r 00d7fe69d024 -r 64931d320790 src/devices/wifi/interference-helper.cc --- a/src/devices/wifi/interference-helper.cc Mon Oct 12 14:01:36 2009 -0700 +++ b/src/devices/wifi/interference-helper.cc Mon Oct 12 23:31:58 2009 -0700 @@ -428,7 +428,7 @@ { i++; } - m_events.erase (m_events.begin (), i); + EraseEvents (m_events.begin (), i); } m_events.push_back (event); } @@ -606,7 +606,21 @@ void InterferenceHelper::EraseEvents (void) { + for (Events::iterator i = m_events.begin (); i != m_events.end (); ++i) + { + *i = 0; + } m_events.erase (m_events.begin (), m_events.end ()); } +void +InterferenceHelper::EraseEvents (Events::iterator start, Events::iterator end) +{ + for (Events::iterator i = start; i != end; ++i) + { + *i = 0; + } + m_events.erase (start, end); +} + } // namespace ns3 diff -r 00d7fe69d024 -r 64931d320790 src/devices/wifi/interference-helper.h --- a/src/devices/wifi/interference-helper.h Mon Oct 12 14:01:36 2009 -0700 +++ b/src/devices/wifi/interference-helper.h Mon Oct 12 23:31:58 2009 -0700 @@ -110,6 +110,8 @@ typedef std::vector NiChanges; typedef std::list > Events; + void EraseEvents (Events::iterator start, Events::iterator end); + InterferenceHelper (const InterferenceHelper &o); InterferenceHelper &operator = (const InterferenceHelper &o); void AppendEvent (Ptr event);