diff options
Diffstat (limited to 'drape/overlay_tree.hpp')
-rw-r--r-- | drape/overlay_tree.hpp | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/drape/overlay_tree.hpp b/drape/overlay_tree.hpp index 878bd1938b..817680ff45 100644 --- a/drape/overlay_tree.hpp +++ b/drape/overlay_tree.hpp @@ -9,7 +9,7 @@ #include "std/array.hpp" #include "std/vector.hpp" -#include "std/unordered_map.hpp" +#include "std/unordered_set.hpp" namespace dp { @@ -29,6 +29,16 @@ struct OverlayTraits } }; +struct OverlayHasher +{ + hash<OverlayHandle*> m_hasher; + + size_t operator()(ref_ptr<OverlayHandle> const & handle) const + { + return m_hasher(handle.get()); + } +}; + } using TOverlayContainer = buffer_vector<ref_ptr<OverlayHandle>, 8>; @@ -75,14 +85,9 @@ private: ref_ptr<OverlayHandle> & parentOverlay) const; void DeleteHandle(ref_ptr<OverlayHandle> const & handle); - uint64_t GetHandleKey(ref_ptr<OverlayHandle> const & handle) const; - int m_frameCounter; array<vector<ref_ptr<OverlayHandle>>, dp::OverlayRanksCount> m_handles; - vector<ref_ptr<OverlayHandle>> m_handlesToDelete; - - unordered_map<uint64_t, ref_ptr<OverlayHandle>> m_handlesCache; - + unordered_set<ref_ptr<OverlayHandle>, detail::OverlayHasher> m_handlesCache; bool m_followingMode; #ifdef COLLECT_DISPLACEMENT_INFO |