diff options
author | Bartosz Taudul <wolf.pld@gmail.com> | 2018-08-04 18:10:45 +0300 |
---|---|---|
committer | Bartosz Taudul <wolf.pld@gmail.com> | 2018-08-04 18:10:45 +0300 |
commit | 0b4c2724ce3e55da4cc2aedcb1084b1528c8316b (patch) | |
tree | db53dee3999268c9287b8de795ec11e11c66b753 /server/TracyStringDiscovery.hpp | |
parent | 2f01014a95d1f44963f3587e07d2e12fed73c7ee (diff) |
Add strings to map directly in StringDiscovery.
Diffstat (limited to 'server/TracyStringDiscovery.hpp')
-rw-r--r-- | server/TracyStringDiscovery.hpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/server/TracyStringDiscovery.hpp b/server/TracyStringDiscovery.hpp index 36e5cd84..bd217be4 100644 --- a/server/TracyStringDiscovery.hpp +++ b/server/TracyStringDiscovery.hpp @@ -19,18 +19,19 @@ public: tracy_force_inline bool IsPending() const { return !m_pending.empty(); } // Merge( destination, postponed ) - tracy_force_inline bool StringDiscovered( uint64_t name, const StringLocation& sl, std::function<void(T,T)> Merge ) + template<typename U> + tracy_force_inline void StringDiscovered( uint64_t name, const StringLocation& sl, U& stringMap, std::function<void(T,T)> Merge ) { auto pit = m_pending.find( name ); assert( pit != m_pending.end() ); auto it = m_rev.find( sl.ptr ); - bool add = it == m_rev.end(); - if( add ) + if( it == m_rev.end() ) { m_map.emplace( name, pit->second ); m_rev.emplace( sl.ptr, pit->second ); m_data.push_back( pit->second ); + stringMap.emplace( name, sl.ptr ); } else { @@ -40,8 +41,6 @@ public: } m_pending.erase( pit ); - - return add; } tracy_force_inline T Retrieve( uint64_t name, std::function<T(uint64_t)> Create, std::function<void(uint64_t)> Query ) |