From 0b4c2724ce3e55da4cc2aedcb1084b1528c8316b Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Sat, 4 Aug 2018 17:10:45 +0200 Subject: [PATCH] Add strings to map directly in StringDiscovery. --- server/TracyStringDiscovery.hpp | 9 ++++----- server/TracyWorker.cpp | 6 +----- 2 files changed, 5 insertions(+), 10 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 Merge ) + template + tracy_force_inline void StringDiscovered( uint64_t name, const StringLocation& sl, U& stringMap, std::function 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 Create, std::function Query ) diff --git a/server/TracyWorker.cpp b/server/TracyWorker.cpp index d9ee2548..42797d21 100644 --- a/server/TracyWorker.cpp +++ b/server/TracyWorker.cpp @@ -1613,16 +1613,12 @@ void Worker::InsertPlot( PlotData* plot, int64_t time, double val ) void Worker::HandlePlotName( uint64_t name, char* str, size_t sz ) { const auto sl = StoreString( str, sz ); - bool addString = m_data.plots.StringDiscovered( name, sl, [this] ( PlotData* dst, PlotData* src ) { + m_data.plots.StringDiscovered( name, sl, m_data.strings, [this] ( PlotData* dst, PlotData* src ) { for( auto& v : src->data ) { InsertPlot( dst, v.time, v.val ); } } ); - if( addString ) - { - m_data.strings.emplace( name, sl.ptr ); - } } void Worker::HandlePostponedPlots()