From 1fa943d109f92e8375fc43b6fadeaf6f81af0e7b Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Mon, 2 Apr 2018 02:05:16 +0200 Subject: [PATCH] Save/load memory data. --- server/TracyWorker.cpp | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/server/TracyWorker.cpp b/server/TracyWorker.cpp index 41b1cfaa..858f309f 100644 --- a/server/TracyWorker.cpp +++ b/server/TracyWorker.cpp @@ -243,6 +243,26 @@ Worker::Worker( FileRead& f ) f.Read( pd->data.data(), psz * sizeof( PlotItem ) ); m_data.plots.push_back_no_space_check( pd ); } + + // Support pre-0.3 traces + if( f.IsEOF() ) return; + + f.Read( &sz, sizeof( sz ) ); + m_data.memory.data.reserve( sz ); + for( uint64_t i=0; i(); + f.Read( mem, sizeof( MemEvent ) ); + m_data.memory.data.push_back_no_space_check( mem ); + + if( mem->timeFree < 0 ) + { + m_data.memory.active.emplace( mem->ptr, mem ); + } + } + f.Read( &m_data.memory.high, sizeof( m_data.memory.high ) ); + f.Read( &m_data.memory.low, sizeof( m_data.memory.low ) ); + f.Read( &m_data.memory.usage, sizeof( m_data.memory.usage ) ); } Worker::~Worker() @@ -1879,6 +1899,16 @@ void Worker::Write( FileWrite& f ) f.Write( &sz, sizeof( sz ) ); f.Write( plot->data.data(), sizeof( PlotItem ) * sz ); } + + sz = m_data.memory.data.size(); + f.Write( &sz, sizeof( sz ) ); + for( auto& mem : m_data.memory.data ) + { + f.Write( mem, sizeof( MemEvent ) ); + } + f.Write( &m_data.memory.high, sizeof( m_data.memory.high ) ); + f.Write( &m_data.memory.low, sizeof( m_data.memory.low ) ); + f.Write( &m_data.memory.usage, sizeof( m_data.memory.usage ) ); } void Worker::WriteTimeline( FileWrite& f, const Vector& vec )