diff --git a/src/simulator/scheduler-map.cc b/src/simulator/scheduler-map.cc index 0c38f87d1..ac2054d5b 100644 --- a/src/simulator/scheduler-map.cc +++ b/src/simulator/scheduler-map.cc @@ -49,16 +49,20 @@ SchedulerMap::~SchedulerMap () * - transitivity: f(x,y) and f(y,z) => f(x,z) */ bool -SchedulerMap::EventKeyCompare::operator () (struct EventKey a, struct EventKey b) +SchedulerMap::EventKeyCompare::operator () (struct EventKey const&a, struct EventKey const&b) { if (a.m_ns < b.m_ns) { return true; } - else if (a.m_ns == b.m_ns && a.m_uid < b.m_uid) + else if (a.m_ns > b.m_ns) + { + return false; + } + else if (a.m_uid < b.m_uid) { return true; - } + } else { return false; diff --git a/src/simulator/scheduler-map.h b/src/simulator/scheduler-map.h index 1a549de6c..4b32c34de 100644 --- a/src/simulator/scheduler-map.h +++ b/src/simulator/scheduler-map.h @@ -47,7 +47,7 @@ private: class EventKeyCompare { public: - bool operator () (struct EventKey a, struct EventKey b); + bool operator () (struct EventKey const&a, struct EventKey const&b); }; typedef std::map EventMap;