From 9a5104dacfdc475b3867b570dd7b2de988195532 Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Thu, 30 Jan 2020 01:57:49 +0100 Subject: [PATCH] Extract and pass a value, which will be changing. --- server/TracyView.cpp | 28 ++++++++++++++-------------- server/TracyView.hpp | 8 ++++---- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/server/TracyView.cpp b/server/TracyView.cpp index 59bedd66..368d45f3 100644 --- a/server/TracyView.cpp +++ b/server/TracyView.cpp @@ -5615,22 +5615,22 @@ void DrawZoneTrace( T zone, const std::vector& trace, const Worker& worker, B ImGui::TreePop(); } -void View::CalcZoneTimeData( unordered_flat_map& data, unordered_flat_map::iterator zit, const ZoneEvent& zone ) +void View::CalcZoneTimeData( unordered_flat_map& data, int64_t& ztime, const ZoneEvent& zone ) { assert( zone.HasChildren() ); const auto& children = m_worker.GetZoneChildren( zone.Child() ); if( children.is_magic() ) { - CalcZoneTimeDataImpl>( *(Vector*)( &children ), data, zit, zone ); + CalcZoneTimeDataImpl>( *(Vector*)( &children ), data, ztime, zone ); } else { - CalcZoneTimeDataImpl>( children, data, zit, zone ); + CalcZoneTimeDataImpl>( children, data, ztime, zone ); } } template -void View::CalcZoneTimeDataImpl( const V& children, unordered_flat_map& data, unordered_flat_map::iterator zit, const ZoneEvent& zone ) +void View::CalcZoneTimeDataImpl( const V& children, unordered_flat_map& data, int64_t& ztime, const ZoneEvent& zone ) { Adapter a; if( m_timeDist.exclusiveTime ) @@ -5638,7 +5638,7 @@ void View::CalcZoneTimeDataImpl( const V& children, unordered_flat_mapsecond.time -= t; + ztime -= t; } } for( auto& child : children ) @@ -5655,26 +5655,26 @@ void View::CalcZoneTimeDataImpl( const V& children, unordered_flat_mapsecond.time += t; it->second.count++; } - if( a(child).Child() >= 0 ) CalcZoneTimeData( data, it, a(child) ); + if( a(child).Child() >= 0 ) CalcZoneTimeData( data, it->second.time, a(child) ); } } -void View::CalcZoneTimeData( const ContextSwitch* ctx, unordered_flat_map& data, unordered_flat_map::iterator zit, const ZoneEvent& zone ) +void View::CalcZoneTimeData( const ContextSwitch* ctx, unordered_flat_map& data, int64_t& ztime, const ZoneEvent& zone ) { assert( zone.HasChildren() ); const auto& children = m_worker.GetZoneChildren( zone.Child() ); if( children.is_magic() ) { - CalcZoneTimeDataImpl>( *(Vector*)( &children ), ctx, data, zit, zone ); + CalcZoneTimeDataImpl>( *(Vector*)( &children ), ctx, data, ztime, zone ); } else { - CalcZoneTimeDataImpl>( children, ctx, data, zit, zone ); + CalcZoneTimeDataImpl>( children, ctx, data, ztime, zone ); } } template -void View::CalcZoneTimeDataImpl( const V& children, const ContextSwitch* ctx, unordered_flat_map& data, unordered_flat_map::iterator zit, const ZoneEvent& zone ) +void View::CalcZoneTimeDataImpl( const V& children, const ContextSwitch* ctx, unordered_flat_map& data, int64_t& ztime, const ZoneEvent& zone ) { Adapter a; if( m_timeDist.exclusiveTime ) @@ -5685,7 +5685,7 @@ void View::CalcZoneTimeDataImpl( const V& children, const ContextSwitch* ctx, un uint64_t cnt; const auto res = GetZoneRunningTime( ctx, a(child), t, cnt ); assert( res ); - zit->second.time -= t; + ztime -= t; } } for( auto& child : children ) @@ -5705,7 +5705,7 @@ void View::CalcZoneTimeDataImpl( const V& children, const ContextSwitch* ctx, un it->second.time += t; it->second.count++; } - if( a(child).Child() >= 0 ) CalcZoneTimeData( ctx, data, it, a(child) ); + if( a(child).Child() >= 0 ) CalcZoneTimeData( ctx, data, it->second.time, a(child) ); } } @@ -6383,14 +6383,14 @@ void View::DrawZoneInfoWindow() else { auto it = m_timeDist.data.emplace( ev.SrcLoc(), ZoneTimeData{ time, 1 } ).first; - CalcZoneTimeData( ctx, m_timeDist.data, it, ev ); + CalcZoneTimeData( ctx, m_timeDist.data, it->second.time, ev ); } m_timeDist.fztime = 100.f / time; } else { auto it = m_timeDist.data.emplace( ev.SrcLoc(), ZoneTimeData{ ztime, 1 } ).first; - CalcZoneTimeData( m_timeDist.data, it, ev ); + CalcZoneTimeData( m_timeDist.data, it->second.time, ev ); m_timeDist.fztime = 100.f / ztime; } } diff --git a/server/TracyView.hpp b/server/TracyView.hpp index 900be531..fb009ef7 100644 --- a/server/TracyView.hpp +++ b/server/TracyView.hpp @@ -231,12 +231,12 @@ private: int64_t GetZoneSelfTime( const GpuEvent& zone ); bool GetZoneRunningTime( const ContextSwitch* ctx, const ZoneEvent& ev, int64_t& time, uint64_t& cnt ); - tracy_force_inline void CalcZoneTimeData( unordered_flat_map& data, unordered_flat_map::iterator zit, const ZoneEvent& zone ); - tracy_force_inline void CalcZoneTimeData( const ContextSwitch* ctx, unordered_flat_map& data, unordered_flat_map::iterator zit, const ZoneEvent& zone ); + tracy_force_inline void CalcZoneTimeData( unordered_flat_map& data, int64_t& ztime, const ZoneEvent& zone ); + tracy_force_inline void CalcZoneTimeData( const ContextSwitch* ctx, unordered_flat_map& data, int64_t& ztime, const ZoneEvent& zone ); template - void CalcZoneTimeDataImpl( const V& children, unordered_flat_map& data, unordered_flat_map::iterator zit, const ZoneEvent& zone ); + void CalcZoneTimeDataImpl( const V& children, unordered_flat_map& data, int64_t& ztime, const ZoneEvent& zone ); template - void CalcZoneTimeDataImpl( const V& children, const ContextSwitch* ctx, unordered_flat_map& data, unordered_flat_map::iterator zit, const ZoneEvent& zone ); + void CalcZoneTimeDataImpl( const V& children, const ContextSwitch* ctx, unordered_flat_map& data, int64_t& ztime, const ZoneEvent& zone ); void SetPlaybackFrame( uint32_t idx );