diff --git a/client/TracyProfiler.cpp b/client/TracyProfiler.cpp index e707573e..83dde728 100644 --- a/client/TracyProfiler.cpp +++ b/client/TracyProfiler.cpp @@ -2412,14 +2412,7 @@ void Profiler::SendCallstackFrame( uint64_t ptr ) MemWrite( &item.callstackFrame.file, (uint64_t)frame.file ); MemWrite( &item.callstackFrame.line, frame.line ); MemWrite( &item.callstackFrame.symAddr, frame.symAddr ); - if( frame.symLen > ( 1 << 24 ) ) - { - memset( item.callstackFrame.symLen, 0, 3 ); - } - else - { - memcpy( item.callstackFrame.symLen, &frame.symLen, 3 ); - } + MemWrite( &item.callstackFrame.symLen, frame.symLen ); AppendData( &item, QueueDataSize[(int)QueueType::CallstackFrame] ); diff --git a/common/TracyQueue.hpp b/common/TracyQueue.hpp index 803f0aad..b86a8226 100644 --- a/common/TracyQueue.hpp +++ b/common/TracyQueue.hpp @@ -386,7 +386,7 @@ struct QueueCallstackFrame uint64_t file; uint32_t line; uint64_t symAddr; - char symLen[3]; + uint32_t symLen; }; struct QueueSymbolInformation diff --git a/server/TracyWorker.cpp b/server/TracyWorker.cpp index 5666f2d5..cbe27fae 100644 --- a/server/TracyWorker.cpp +++ b/server/TracyWorker.cpp @@ -5455,9 +5455,7 @@ void Worker::ProcessCallstackFrame( const QueueCallstackFrame& ev ) if( ev.symAddr != 0 && m_data.symbolMap.find( ev.symAddr ) == m_data.symbolMap.end() && m_pendingSymbols.find( ev.symAddr ) == m_pendingSymbols.end() ) { - uint32_t size = 0; - memcpy( &size, ev.symLen, 3 ); - m_pendingSymbols.emplace( ev.symAddr, SymbolPending { name, m_callstackFrameStaging->imageName, file, ev.line, size, idx < m_callstackFrameStaging->size - 1 } ); + m_pendingSymbols.emplace( ev.symAddr, SymbolPending { name, m_callstackFrameStaging->imageName, file, ev.line, ev.symLen, idx < m_callstackFrameStaging->size - 1 } ); Query( ServerQuerySymbol, ev.symAddr ); }