diff --git a/qrenderdoc/Code/Interface/QRDInterface.h b/qrenderdoc/Code/Interface/QRDInterface.h index 39be7fab8..9558d69cb 100644 --- a/qrenderdoc/Code/Interface/QRDInterface.h +++ b/qrenderdoc/Code/Interface/QRDInterface.h @@ -2752,5 +2752,11 @@ data. rdcstr ConfigFilePath(const rdcstr &filename); // simple helper for the common case of 'we just need to run this on the replay thread' -#define INVOKE_MEMFN(function) \ - m_Ctx.Replay().AsyncInvoke([this](IReplayController *r) { function(r); }); +#define INVOKE_MEMFN(function) \ + { \ + QPointer::type> meptr; \ + m_Ctx.Replay().AsyncInvoke([meptr](IReplayController *r) { \ + if(meptr) \ + meptr->function(r); \ + }); \ + }