From 0d4194afc57fa8498a6cde3df5ece2b21c744a83 Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 16 Nov 2020 12:20:15 +0000 Subject: [PATCH] Cache id so we don't reference iterator after deletion --- renderdoc/driver/gl/gl_manager.h | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/renderdoc/driver/gl/gl_manager.h b/renderdoc/driver/gl/gl_manager.h index 7ac6c10e6..6931ac9aa 100644 --- a/renderdoc/driver/gl/gl_manager.h +++ b/renderdoc/driver/gl/gl_manager.h @@ -170,14 +170,15 @@ public: auto it = m_CurrentResources.find(res); if(it != m_CurrentResources.end()) { - m_Names.erase(it->second.first); + ResourceId id = it->second.first; + m_Names.erase(id); - if(IsReplayMode(m_State) && HasLiveResource(it->second.first)) - EraseLiveResource(it->second.first); - ReleaseCurrentResource(it->second.first); + if(IsReplayMode(m_State) && HasLiveResource(id)) + EraseLiveResource(id); + ReleaseCurrentResource(id); m_CurrentResources.erase(res); - auto fboit = m_FBOAttachmentsCache.find(it->second.first); + auto fboit = m_FBOAttachmentsCache.find(id); if(fboit != m_FBOAttachmentsCache.end()) { delete fboit->second;