diff --git a/client/TracyProfiler.cpp b/client/TracyProfiler.cpp index 74d94cce..21308321 100644 --- a/client/TracyProfiler.cpp +++ b/client/TracyProfiler.cpp @@ -2897,12 +2897,11 @@ void Profiler::SendCodeLocation( uint64_t ptr ) #ifdef TRACY_HAS_CALLSTACK const auto sym = DecodeCodeAddress( ptr ); - SendString( uint64_t( sym.file ), sym.file, QueueType::CustomStringData ); + SendSingleString( sym.file ); QueueItem item; MemWrite( &item.hdr.type, QueueType::CodeInformation ); MemWrite( &item.codeInformation.ptr, ptr ); - MemWrite( &item.codeInformation.file, uint64_t( sym.file ) ); MemWrite( &item.codeInformation.line, sym.line ); AppendData( &item, QueueDataSize[(int)QueueType::CodeInformation] ); diff --git a/common/TracyQueue.hpp b/common/TracyQueue.hpp index 521ff9d6..2e84e205 100644 --- a/common/TracyQueue.hpp +++ b/common/TracyQueue.hpp @@ -401,7 +401,6 @@ struct QueueSymbolInformation struct QueueCodeInformation { uint64_t ptr; - uint64_t file; uint32_t line; }; diff --git a/server/TracyWorker.cpp b/server/TracyWorker.cpp index 8cb82ee7..7f460c8e 100644 --- a/server/TracyWorker.cpp +++ b/server/TracyWorker.cpp @@ -5548,13 +5548,14 @@ void Worker::ProcessCodeInformation( const QueueCodeInformation& ev ) assert( m_pendingCodeInformation > 0 ); m_pendingCodeInformation--; - auto fit = m_pendingCustomStrings.find( ev.file ); - assert( fit != m_pendingCustomStrings.end() ); + assert( m_pendingSingleString.ptr != nullptr ); + const auto idx = m_pendingSingleString.idx; + m_pendingSingleString.ptr = nullptr; if( ev.line != 0 ) { assert( m_data.codeAddressToLocation.find( ev.ptr ) == m_data.codeAddressToLocation.end() ); - const auto packed = PackFileLine( fit->second.idx, ev.line ); + const auto packed = PackFileLine( idx, ev.line ); m_data.codeAddressToLocation.emplace( ev.ptr, packed ); auto lit = m_data.locationCodeAddressList.find( packed ); @@ -5569,12 +5570,10 @@ void Worker::ProcessCodeInformation( const QueueCodeInformation& ev ) if( needSort ) pdqsort_branchless( lit->second.begin(), lit->second.end() ); } - StringRef ref( StringRef::Idx, fit->second.idx ); + StringRef ref( StringRef::Idx, idx ); auto cit = m_checkedFileStrings.find( ref ); if( cit == m_checkedFileStrings.end() ) CacheSource( ref ); } - - m_pendingCustomStrings.erase( fit ); } void Worker::ProcessCrashReport( const QueueCrashReport& ev )