From: Arnaud Giersch Date: Wed, 1 Mar 2023 10:03:20 +0000 (+0100) Subject: Lookup only once in map. X-Git-Tag: v3.34~402 X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/e5847d85a6676e87832a188792078d35cde25986 Lookup only once in map. --- diff --git a/src/kernel/actor/SimcallObserver.hpp b/src/kernel/actor/SimcallObserver.hpp index 71f7e13e60..1dfc713edc 100644 --- a/src/kernel/actor/SimcallObserver.hpp +++ b/src/kernel/actor/SimcallObserver.hpp @@ -147,9 +147,10 @@ public: template static std::string ptr_to_id(A* ptr) { static std::unordered_map map; - if (map.find(ptr) == map.end()) - map.insert(std::make_pair(ptr, std::to_string(map.size() + 1))); - return map[ptr]; + auto [elm, inserted] = map.try_emplace(ptr); + if (inserted) + elm->second = std::to_string(map.size()); + return elm->second; } } // namespace simgrid::kernel::actor