From 61e3acde064d8853478de1891a4dce6158e0939b Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Sun, 26 Jul 2020 00:38:59 +0200 Subject: [PATCH] Send single string for callstack frame size. --- client/TracyProfiler.cpp | 3 +-- common/TracyQueue.hpp | 1 - server/TracyWorker.cpp | 7 ++----- 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/client/TracyProfiler.cpp b/client/TracyProfiler.cpp index a2064712..fb6ba1d5 100644 --- a/client/TracyProfiler.cpp +++ b/client/TracyProfiler.cpp @@ -2390,13 +2390,12 @@ void Profiler::SendCallstackFrame( uint64_t ptr ) const auto frameData = DecodeCallstackPtr( ptr ); { - SendString( uint64_t( frameData.imageName ), frameData.imageName, QueueType::CustomStringData ); + SendSingleString( frameData.imageName ); QueueItem item; MemWrite( &item.hdr.type, QueueType::CallstackFrameSize ); MemWrite( &item.callstackFrameSize.ptr, ptr ); MemWrite( &item.callstackFrameSize.size, frameData.size ); - MemWrite( &item.callstackFrameSize.imageName, (uint64_t)frameData.imageName ); AppendData( &item, QueueDataSize[(int)QueueType::CallstackFrameSize] ); } diff --git a/common/TracyQueue.hpp b/common/TracyQueue.hpp index ec57bd96..6a2180b8 100644 --- a/common/TracyQueue.hpp +++ b/common/TracyQueue.hpp @@ -379,7 +379,6 @@ struct QueueCallstackFrameSize { uint64_t ptr; uint8_t size; - uint64_t imageName; }; struct QueueCallstackFrame diff --git a/server/TracyWorker.cpp b/server/TracyWorker.cpp index 5f0abbca..a862591a 100644 --- a/server/TracyWorker.cpp +++ b/server/TracyWorker.cpp @@ -5416,8 +5416,7 @@ void Worker::ProcessCallstackFrameSize( const QueueCallstackFrameSize& ev ) m_data.newFramesWereReceived = true; #endif - auto iit = m_pendingCustomStrings.find( ev.imageName ); - assert( iit != m_pendingCustomStrings.end() ); + const auto idx = GetSingleStringIdx(); // Frames may be duplicated due to recursion auto fmit = m_data.callstackFrameMap.find( PackPointer( ev.ptr ) ); @@ -5426,12 +5425,10 @@ void Worker::ProcessCallstackFrameSize( const QueueCallstackFrameSize& ev ) m_callstackFrameStaging = m_slab.Alloc(); m_callstackFrameStaging->size = ev.size; m_callstackFrameStaging->data = m_slab.Alloc( ev.size ); - m_callstackFrameStaging->imageName = StringIdx( iit->second.idx ); + m_callstackFrameStaging->imageName = StringIdx( idx ); m_callstackFrameStagingPtr = ev.ptr; } - - m_pendingCustomStrings.erase( iit ); } void Worker::ProcessCallstackFrame( const QueueCallstackFrame& ev )