diff options
| author | 2008-03-29 04:32:49 +0000 | |
|---|---|---|
| committer | 2008-03-29 04:32:49 +0000 | |
| commit | 3c59bd0592bc6ef857a692c88e8605f98c11397d (patch) | |
| tree | 970e6952087927cd56cc49c15fe4ab3c572b14a7 /src | |
| parent | cleaned up tal classes (diff) | |
| download | KVIrc-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.cpp | 15 |
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) |
