From 4cca4f90f15b5710cc22a338cfb112650ae3acab Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 11 Sep 2014 19:52:14 +0100 Subject: [PATCH] ReplayRenderer takes over ownership of ProxySerialiser --- renderdoc/core/remote_replay.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/renderdoc/core/remote_replay.cpp b/renderdoc/core/remote_replay.cpp index b58dd1d03..d00527d5e 100644 --- a/renderdoc/core/remote_replay.cpp +++ b/renderdoc/core/remote_replay.cpp @@ -269,11 +269,9 @@ struct RemoteRenderer for(auto it=m.begin(); it != m.end(); ++it) m_RemoteDrivers.push_back(*it); m_ProxyDriver = NULL; - m_ProxySerialiser = NULL; } ~RemoteRenderer() { - SAFE_DELETE(m_ProxySerialiser); SAFE_DELETE(m_Socket); } @@ -364,15 +362,18 @@ struct RemoteRenderer ReplayRenderer *ret = new ReplayRenderer(); - m_ProxySerialiser = new ProxySerialiser(m_Socket, m_ProxyDriver); - status = ret->SetDevice(m_ProxySerialiser); + ProxySerialiser *proxy = new ProxySerialiser(m_Socket, m_ProxyDriver); + status = ret->SetDevice(proxy); if(status != eReplayCreate_Success) { SAFE_DELETE(ret); - SAFE_DELETE(m_ProxySerialiser); + SAFE_DELETE(proxy); return status; } + + // ReplayRenderer takes ownership of the ProxySerialiser (as IReplayDriver) + // and it cleans itself up in Shutdown. *rend = ret; @@ -396,7 +397,6 @@ struct RemoteRenderer } IReplayDriver *m_ProxyDriver; - ProxySerialiser *m_ProxySerialiser; vector< pair > m_Proxies; vector< pair > m_RemoteDrivers;