fix valgrind complaints (bug 711)
authorCraig Dowell <craigdo@ee.washington.edu>
Mon, 12 Oct 2009 23:31:58 -0700
changeset 5413 64931d320790
parent 5412 00d7fe69d024
child 5414 0d8cda24ced4
fix valgrind complaints (bug 711)
src/devices/mesh/dot11s/hwmp-protocol-mac.cc
src/devices/mesh/dot11s/hwmp-protocol.cc
src/devices/wifi/interference-helper.cc
src/devices/wifi/interference-helper.h
--- 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<Mac48Address>::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 ();
--- 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<Mac48Address>::const_iterator i = receivers.begin (); i != receivers.end (); i ++)
             {
               Ptr<Packet> 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);
             }
--- 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
--- 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 <NiChange> NiChanges;
   typedef std::list<Ptr<Event> > Events;
 
+  void EraseEvents (Events::iterator start, Events::iterator end); 
+
   InterferenceHelper (const InterferenceHelper &o);
   InterferenceHelper &operator = (const InterferenceHelper &o);
   void AppendEvent (Ptr<Event> event);