From 31a4a45b14c577f8b21fa1049d5b6da405280bd2 Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Thu, 13 Jun 2019 14:15:17 +0200 Subject: [PATCH] Ignore memory free faults if running on apple. There's a case in MoltenVK initialization where overloading operator new and operator delete works for std::string destruction, but not construction. --- server/TracyWorker.cpp | 3 ++- server/TracyWorker.hpp | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/server/TracyWorker.cpp b/server/TracyWorker.cpp index 7ea2a0da..3c85a0db 100644 --- a/server/TracyWorker.cpp +++ b/server/TracyWorker.cpp @@ -1831,6 +1831,7 @@ void Worker::Exec() m_onDemand = welcome.onDemand; m_captureProgram = welcome.programName; m_captureTime = welcome.epoch; + m_ignoreMemFreeFaults = welcome.onDemand || welcome.isApple; char dtmp[64]; time_t date = welcome.epoch; @@ -3513,7 +3514,7 @@ bool Worker::ProcessMemFree( const QueueMemFree& ev ) auto it = m_data.memory.active.find( ev.ptr ); if( it == m_data.memory.active.end() ) { - if( !m_onDemand ) + if( !m_ignoreMemFreeFaults ) { MemFreeFailure( ev.thread ); } diff --git a/server/TracyWorker.hpp b/server/TracyWorker.hpp index 72469ec1..8497e2dc 100644 --- a/server/TracyWorker.hpp +++ b/server/TracyWorker.hpp @@ -498,6 +498,7 @@ private: char* m_buffer; int m_bufferOffset; bool m_onDemand; + bool m_ignoreMemFreeFaults; GpuCtxData* m_gpuCtxMap[256]; flat_hash_map> m_pendingCustomStrings;