1
0
mirror of https://github.com/wolfpld/tracy.git synced 2025-03-20 07:40:02 +08:00

Input data *must not* be changed.

Not even for a short moment.
This commit is contained in:
Bartosz Taudul 2019-11-07 01:29:11 +01:00
parent 4a4fe82a1b
commit ea2c329510
2 changed files with 27 additions and 27 deletions

View File

@ -2522,7 +2522,7 @@ void Worker::Exec()
}
if( netbuf.bufferOffset < 0 ) goto close;
char* ptr = m_buffer + netbuf.bufferOffset;
const char* ptr = m_buffer + netbuf.bufferOffset;
const char* end = ptr + netbuf.size;
{
@ -2623,7 +2623,7 @@ void Worker::QueryTerminate()
m_sock.Send( &query, ServerQueryPacketSize );
}
bool Worker::DispatchProcess( const QueueItem& ev, char*& ptr )
bool Worker::DispatchProcess( const QueueItem& ev, const char*& ptr )
{
if( ev.hdr.idx >= (int)QueueType::StringData )
{
@ -2991,7 +2991,7 @@ void Worker::AddSourceLocation( const QueueSourceLocation& srcloc )
it->second = SourceLocation { srcloc.name == 0 ? StringRef() : StringRef( StringRef::Ptr, srcloc.name ), StringRef( StringRef::Ptr, srcloc.function ), StringRef( StringRef::Ptr, srcloc.file ), srcloc.line, color };
}
void Worker::AddSourceLocationPayload( uint64_t ptr, char* data, size_t sz )
void Worker::AddSourceLocationPayload( uint64_t ptr, const char* data, size_t sz )
{
const auto start = data;
@ -3046,7 +3046,7 @@ void Worker::AddSourceLocationPayload( uint64_t ptr, char* data, size_t sz )
}
}
void Worker::AddString( uint64_t ptr, char* str, size_t sz )
void Worker::AddString( uint64_t ptr, const char* str, size_t sz )
{
assert( m_pendingStrings > 0 );
m_pendingStrings--;
@ -3056,7 +3056,7 @@ void Worker::AddString( uint64_t ptr, char* str, size_t sz )
it->second = sl.ptr;
}
void Worker::AddThreadString( uint64_t id, char* str, size_t sz )
void Worker::AddThreadString( uint64_t id, const char* str, size_t sz )
{
assert( m_pendingThreads > 0 );
m_pendingThreads--;
@ -3066,13 +3066,13 @@ void Worker::AddThreadString( uint64_t id, char* str, size_t sz )
it->second = sl.ptr;
}
void Worker::AddCustomString( uint64_t ptr, char* str, size_t sz )
void Worker::AddCustomString( uint64_t ptr, const char* str, size_t sz )
{
assert( m_pendingCustomStrings.find( ptr ) == m_pendingCustomStrings.end() );
m_pendingCustomStrings.emplace( ptr, StoreString( str, sz ) );
}
void Worker::AddExternalName( uint64_t ptr, char* str, size_t sz )
void Worker::AddExternalName( uint64_t ptr, const char* str, size_t sz )
{
assert( m_pendingExternalNames > 0 );
m_pendingExternalNames--;
@ -3082,7 +3082,7 @@ void Worker::AddExternalName( uint64_t ptr, char* str, size_t sz )
it->second.first = sl.ptr;
}
void Worker::AddExternalThreadName( uint64_t ptr, char* str, size_t sz )
void Worker::AddExternalThreadName( uint64_t ptr, const char* str, size_t sz )
{
assert( m_pendingExternalNames > 0 );
m_pendingExternalNames--;
@ -3111,7 +3111,7 @@ static const uint8_t DxtcIndexTable[256] = {
5, 7, 6, 4, 13, 15, 14, 12, 9, 11, 10, 8, 1, 3, 2, 0
};
void Worker::AddFrameImageData( uint64_t ptr, char* data, size_t sz )
void Worker::AddFrameImageData( uint64_t ptr, const char* data, size_t sz )
{
assert( m_pendingFrameImageData.find( ptr ) == m_pendingFrameImageData.end() );
assert( sz % 8 == 0 );
@ -3142,7 +3142,7 @@ uint64_t Worker::GetCanonicalPointer( const CallstackFrameId& id ) const
return ( id.idx & 0x7FFFFFFFFFFFFFFF ) | ( ( id.idx & 0x4000000000000000 ) << 1 );
}
void Worker::AddCallstackPayload( uint64_t ptr, char* _data, size_t _sz )
void Worker::AddCallstackPayload( uint64_t ptr, const char* _data, size_t _sz )
{
assert( m_pendingCallstackPtr == 0 );
@ -3189,7 +3189,7 @@ void Worker::AddCallstackPayload( uint64_t ptr, char* _data, size_t _sz )
m_pendingCallstackId = idx;
}
void Worker::AddCallstackAllocPayload( uint64_t ptr, char* data, size_t _sz )
void Worker::AddCallstackAllocPayload( uint64_t ptr, const char* data, size_t _sz )
{
assert( m_pendingCallstackPtr != 0 );
@ -3298,7 +3298,7 @@ void Worker::InsertPlot( PlotData* plot, int64_t time, double val )
}
}
void Worker::HandlePlotName( uint64_t name, char* str, size_t sz )
void Worker::HandlePlotName( uint64_t name, const char* str, size_t sz )
{
const auto sl = StoreString( str, sz );
m_data.plots.StringDiscovered( name, sl, m_data.strings, [this] ( PlotData* dst, PlotData* src ) {
@ -3309,7 +3309,7 @@ void Worker::HandlePlotName( uint64_t name, char* str, size_t sz )
} );
}
void Worker::HandleFrameName( uint64_t name, char* str, size_t sz )
void Worker::HandleFrameName( uint64_t name, const char* str, size_t sz )
{
const auto sl = StoreString( str, sz );
m_data.frames.StringDiscovered( name, sl, m_data.strings, [] ( FrameData* dst, FrameData* src ) {
@ -3342,7 +3342,7 @@ void Worker::HandlePostponedPlots()
}
}
StringLocation Worker::StoreString( char* str, size_t sz )
StringLocation Worker::StoreString( const char* str, size_t sz )
{
StringLocation ret;
charutil::StringKey key = { str, sz };

View File

@ -425,7 +425,7 @@ private:
void Query( ServerQuery type, uint64_t data );
void QueryTerminate();
tracy_force_inline bool DispatchProcess( const QueueItem& ev, char*& ptr );
tracy_force_inline bool DispatchProcess( const QueueItem& ev, const char*& ptr );
tracy_force_inline bool Process( const QueueItem& ev );
tracy_force_inline void ProcessThreadContext( const QueueThreadContext& ev );
tracy_force_inline void ProcessZoneBegin( const QueueZoneBegin& ev );
@ -544,25 +544,25 @@ private:
void CheckExternalName( uint64_t id );
void AddSourceLocation( const QueueSourceLocation& srcloc );
void AddSourceLocationPayload( uint64_t ptr, char* data, size_t sz );
void AddSourceLocationPayload( uint64_t ptr, const char* data, size_t sz );
void AddString( uint64_t ptr, char* str, size_t sz );
void AddThreadString( uint64_t id, char* str, size_t sz );
void AddCustomString( uint64_t ptr, char* str, size_t sz );
void AddExternalName( uint64_t ptr, char* str, size_t sz );
void AddExternalThreadName( uint64_t ptr, char* str, size_t sz );
void AddFrameImageData( uint64_t ptr, char* data, size_t sz );
void AddString( uint64_t ptr, const char* str, size_t sz );
void AddThreadString( uint64_t id, const char* str, size_t sz );
void AddCustomString( uint64_t ptr, const char* str, size_t sz );
void AddExternalName( uint64_t ptr, const char* str, size_t sz );
void AddExternalThreadName( uint64_t ptr, const char* str, size_t sz );
void AddFrameImageData( uint64_t ptr, const char* data, size_t sz );
tracy_force_inline void AddCallstackPayload( uint64_t ptr, char* data, size_t sz );
tracy_force_inline void AddCallstackAllocPayload( uint64_t ptr, char* data, size_t sz );
tracy_force_inline void AddCallstackPayload( uint64_t ptr, const char* data, size_t sz );
tracy_force_inline void AddCallstackAllocPayload( uint64_t ptr, const char* data, size_t sz );
void InsertPlot( PlotData* plot, int64_t time, double val );
void HandlePlotName( uint64_t name, char* str, size_t sz );
void HandleFrameName( uint64_t name, char* str, size_t sz );
void HandlePlotName( uint64_t name, const char* str, size_t sz );
void HandleFrameName( uint64_t name, const char* str, size_t sz );
void HandlePostponedPlots();
StringLocation StoreString( char* str, size_t sz );
StringLocation StoreString( const char* str, size_t sz );
const ContextSwitch* const GetContextSwitchDataImpl( uint64_t thread );
tracy_force_inline Vector<short_ptr<ZoneEvent>>& GetZoneChildrenMutable( int32_t idx ) { return m_data.zoneChildren[idx]; }