diff options
| author | 2016-08-08 04:50:34 -0400 | |
|---|---|---|
| committer | 2016-08-08 04:50:34 -0400 | |
| commit | 66de67769296eff3d535f91d80fa3c97cd11cf7a (patch) | |
| tree | 3ac87b1f026dec04e6bfde38bdf4daf894ea51f7 | |
| parent | DccChatWindow: Fix possible issue in tryFlushOutBuffers() (diff) | |
| download | KVIrc-66de67769296eff3d535f91d80fa3c97cd11cf7a.tar.gz KVIrc-66de67769296eff3d535f91d80fa3c97cd11cf7a.tar.bz2 KVIrc-66de67769296eff3d535f91d80fa3c97cd11cf7a.zip | |
void range-for loops when things are being destroyed
Otherwise, the iterator gets invalidated and undefined behaviour
can occur.
| -rw-r--r-- | src/kvirc/kvs/KviKvsAsyncOperation.cpp | 4 | ||||
| -rw-r--r-- | src/modules/links/libkvilinks.cpp | 5 | ||||
| -rw-r--r-- | src/modules/socketspy/libkvisocketspy.cpp | 5 | ||||
| -rw-r--r-- | src/modules/term/libkviterm.cpp | 10 |
4 files changed, 10 insertions, 14 deletions
diff --git a/src/kvirc/kvs/KviKvsAsyncOperation.cpp b/src/kvirc/kvs/KviKvsAsyncOperation.cpp index b7617e5ff..c2063c012 100644 --- a/src/kvirc/kvs/KviKvsAsyncOperation.cpp +++ b/src/kvirc/kvs/KviKvsAsyncOperation.cpp @@ -40,8 +40,8 @@ KviKvsAsyncOperation::~KviKvsAsyncOperation() KviKvsAsyncOperationManager::~KviKvsAsyncOperationManager() { - for(auto & o : m_pOperationList) - delete o; + while(!m_pOperationList.empty()) + delete *m_pOperationList.begin(); } void KviKvsAsyncOperationManager::registerOperation(KviKvsAsyncOperation * o) diff --git a/src/modules/links/libkvilinks.cpp b/src/modules/links/libkvilinks.cpp index 5508d5e05..1f779032a 100644 --- a/src/modules/links/libkvilinks.cpp +++ b/src/modules/links/libkvilinks.cpp @@ -87,9 +87,8 @@ static bool links_module_init(KviModule * m) static bool links_module_cleanup(KviModule *) { - for(auto & l : g_pLinksWindowList) - l->die(); - g_pLinksWindowList.clear(); + while (!g_pLinksWindowList.empty()) + (*g_pLinksWindowList.begin())->die(); return true; } diff --git a/src/modules/socketspy/libkvisocketspy.cpp b/src/modules/socketspy/libkvisocketspy.cpp index 0a76aa806..6abb45168 100644 --- a/src/modules/socketspy/libkvisocketspy.cpp +++ b/src/modules/socketspy/libkvisocketspy.cpp @@ -66,9 +66,8 @@ static bool socketspy_module_init(KviModule * m) static bool socketspy_module_cleanup(KviModule *) { - for(auto & s : g_pSocketSpyWindowList) - s->die(); - g_pSocketSpyWindowList.clear(); + while(!g_pSocketSpyWindowList.empty()) + (*g_pSocketSpyWindowList.begin())->die(); return true; } diff --git a/src/modules/term/libkviterm.cpp b/src/modules/term/libkviterm.cpp index 2b11b9ccd..4c56d5f1d 100644 --- a/src/modules/term/libkviterm.cpp +++ b/src/modules/term/libkviterm.cpp @@ -97,13 +97,11 @@ static bool term_module_init(KviModule * m) static bool term_module_cleanup(KviModule *) { #ifdef COMPILE_KDE4_SUPPORT - for(auto & t : g_pTermWidgetList) - delete t; - g_pTermWidgetList.clear(); + while(!g_pTermWidgetList.empty()) + delete *g_pSocketSpyWindowList.begin(); - for(auto & t : g_pTermWindowList) - t->close(); - g_pTermWindowList.clear(); + while(!g_pTermWindowList.empty()) + (*g_pTermWindowList.begin())->close(); #endif return true; } |
