diff --git a/renderdoc/driver/gl/gl_manager.h b/renderdoc/driver/gl/gl_manager.h index bb88131c6..736cef3eb 100644 --- a/renderdoc/driver/gl/gl_manager.h +++ b/renderdoc/driver/gl/gl_manager.h @@ -104,7 +104,7 @@ public: void DeleteContext(void *context) { size_t count = 0; - for(auto it = m_CurrentResourceIds.begin(); it != m_CurrentResourceIds.end(); it++) + for(auto it = m_CurrentResourceIds.begin(); it != m_CurrentResourceIds.end();) { if(it->first.ContextShareGroup == context && it->first.Namespace != eResSpecial) { @@ -116,6 +116,10 @@ public: ReleaseCurrentResource(it->second); it = m_CurrentResourceIds.erase(it); } + else + { + ++it; + } } RDCDEBUG("Removed %zu/%zu resources belonging to context/sharegroup %p", count, m_CurrentResourceIds.size(), context);