diff --git a/server/TracyWorker.cpp b/server/TracyWorker.cpp index 7f4bbaee..9df61ef0 100644 --- a/server/TracyWorker.cpp +++ b/server/TracyWorker.cpp @@ -4253,8 +4253,7 @@ void Worker::GetStackWithInlines( Vector& ret, const VarArray& cs, Vector* vec, uint64_t t ) { - static Vector stack; - GetStackWithInlines( stack, cs ); + GetStackWithInlines( m_inlineStack, cs ); if( !vec->empty() && vec->back().end.Val() > (int64_t)t ) { @@ -4272,17 +4271,17 @@ int Worker::AddGhostZone( const VarArray& cs, Vectorempty() ? 0 : vec->back().end.Val(); int gcnt = 0; size_t idx = 0; - while( !vec->empty() && idx < stack.size() ) + while( !vec->empty() && idx < m_inlineStack.size() ) { auto& back = vec->back(); const auto& backKey = m_data.ghostFrames[back.frame.Val()]; const auto backFrame = GetCallstackFrame( backKey.frame ); if( !backFrame ) break; const auto& inlineFrame = backFrame->data[backKey.inlineFrame]; - if( inlineFrame.symAddr != stack[idx].symAddr ) break; + if( inlineFrame.symAddr != m_inlineStack[idx].symAddr ) break; if( back.end.Val() != refBackTime ) break; back.end.SetVal( t + m_samplingPeriod ); - if( ++idx == stack.size() ) break; + if( ++idx == m_inlineStack.size() ) break; if( back.child < 0 ) { back.child = m_data.ghostChildren.size(); @@ -4293,11 +4292,11 @@ int Worker::AddGhostZone( const VarArray& cs, Vector& cs, Vector m_powerData; + + Vector m_inlineStack; }; }