From f69eb5b70342cbb499dc9b99a5eb78e59eb2d416 Mon Sep 17 00:00:00 2001 From: Michael Stahl Date: Thu, 15 Sep 2011 14:01:39 +0200 Subject: dbaccess: databasecontext.cxx: copy m_aDatabaseObjects this fixes an STL assertion due to invalidated iterator. --- dbaccess/source/core/dataaccess/databasecontext.cxx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'dbaccess/source') diff --git a/dbaccess/source/core/dataaccess/databasecontext.cxx b/dbaccess/source/core/dataaccess/databasecontext.cxx index 3ce9914ddb34..22f77a71f6fb 100644 --- a/dbaccess/source/core/dataaccess/databasecontext.cxx +++ b/dbaccess/source/core/dataaccess/databasecontext.cxx @@ -283,8 +283,10 @@ void ODatabaseContext::disposing() m_aContainerListeners.disposeAndClear(aDisposeEvent); // dispose the data sources - ObjectCache::iterator aEnd = m_aDatabaseObjects.end(); - for ( ObjectCache::iterator aIter = m_aDatabaseObjects.begin(); + // disposing seems to remove elements, so work on copy for valid iterators + ObjectCache objCopy(m_aDatabaseObjects); + ObjectCache::iterator const aEnd = objCopy.end(); + for ( ObjectCache::iterator aIter = objCopy.begin(); aIter != aEnd; ++aIter ) -- cgit