aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGravatar staticfox2016-08-08 04:50:34 -0400
committerGravatar staticfox2016-08-08 04:50:34 -0400
commit66de67769296eff3d535f91d80fa3c97cd11cf7a (patch)
tree3ac87b1f026dec04e6bfde38bdf4daf894ea51f7 /src
parentDccChatWindow: Fix possible issue in tryFlushOutBuffers() (diff)
downloadKVIrc-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.
Diffstat (limited to 'src')
-rw-r--r--src/kvirc/kvs/KviKvsAsyncOperation.cpp4
-rw-r--r--src/modules/links/libkvilinks.cpp5
-rw-r--r--src/modules/socketspy/libkvisocketspy.cpp5
-rw-r--r--src/modules/term/libkviterm.cpp10
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;
}