From b47ca371e798830001cc6867eb25c3ed6b870c45 Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 26 Sep 2018 12:54:07 +0100 Subject: [PATCH] When deleting objects for a context, don't double-increment iterator --- renderdoc/driver/gl/gl_manager.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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);