aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGravatar Szymon Tomasz Stefanek2008-03-29 04:32:49 +0000
committerGravatar Szymon Tomasz Stefanek2008-03-29 04:32:49 +0000
commit3c59bd0592bc6ef857a692c88e8605f98c11397d (patch)
tree970e6952087927cd56cc49c15fe4ab3c572b14a7 /src
parentcleaned up tal classes (diff)
downloadKVIrc-3c59bd0592bc6ef857a692c88e8605f98c11397d.tar.gz
KVIrc-3c59bd0592bc6ef857a692c88e8605f98c11397d.tar.bz2
KVIrc-3c59bd0592bc6ef857a692c88e8605f98c11397d.zip
A couple of small fixes
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@1321 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src')
-rw-r--r--src/kvilib/ext/kvi_crypt.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/kvilib/ext/kvi_crypt.cpp b/src/kvilib/ext/kvi_crypt.cpp
index 1846753d9..53679f062 100644
--- a/src/kvilib/ext/kvi_crypt.cpp
+++ b/src/kvilib/ext/kvi_crypt.cpp
@@ -210,14 +210,17 @@
void KviCryptEngineManager::unregisterEngines(void * providerHandle)
{
- KviPointerHashTableIterator<QString,KviCryptEngineDescription> it(*m_pEngineDict);
- while(it.current())
+ KviPointerList<QString> lEnginesToRemove;
+ lEnginesToRemove.setAutoDelete(true);
+
+ for(KviPointerHashTableEntry<QString,KviCryptEngineDescription> * e = m_pEngineDict->firstEntry();e;e = m_pEngineDict->nextEntry())
{
- if(it.current()->providerHandle == providerHandle)
- m_pEngineDict->remove(it.currentKey());
- else
- ++it;
+ if(e->data()->providerHandle == providerHandle)
+ lEnginesToRemove.append(new QString(e->key()));
}
+
+ for(QString * pszEngineName = lEnginesToRemove.first();pszEngineName;pszEngineName = lEnginesToRemove.next())
+ m_pEngineDict->remove(*pszEngineName);
}
KviCryptEngine * KviCryptEngineManager::allocateEngine(const QString &szName)