When deleting objects for a context, don't double-increment iterator

This commit is contained in:
baldurk
2018-09-26 12:54:07 +01:00
parent 9aedacdc90
commit b47ca371e7
+5 -1
View File
@@ -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);