From 262d09de55adfffa25ef5252cf79113b05965101 Mon Sep 17 00:00:00 2001 From: Mathieu Lacage Date: Tue, 12 Dec 2006 14:41:52 +0100 Subject: [PATCH] optmize std::map comparison --- src/simulator/scheduler-map.cc | 10 +++++++--- src/simulator/scheduler-map.h | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) 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;