--- 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);