diff options
author | Adam <Adam@anope.org> | 2011-06-23 15:10:50 -0400 |
---|---|---|
committer | Adam <Adam@anope.org> | 2011-06-23 15:10:50 -0400 |
commit | b1a075b4621820203523079d78904a82a4d9b2a4 (patch) | |
tree | 15885843a238df59fb2b35149c044e01a3a68cf5 /src/socketengines | |
parent | 3be75cbcb309d61443b6dbfe05506aa73afdc402 (diff) |
Fixed bug #1276 and some other valgrind warnings
Diffstat (limited to 'src/socketengines')
-rw-r--r-- | src/socketengines/socketengine_epoll.cpp | 8 | ||||
-rw-r--r-- | src/socketengines/socketengine_poll.cpp | 8 | ||||
-rw-r--r-- | src/socketengines/socketengine_select.cpp | 8 |
3 files changed, 18 insertions, 6 deletions
diff --git a/src/socketengines/socketengine_epoll.cpp b/src/socketengines/socketengine_epoll.cpp index 316696f54..ad9bef3ce 100644 --- a/src/socketengines/socketengine_epoll.cpp +++ b/src/socketengines/socketengine_epoll.cpp @@ -32,8 +32,12 @@ void SocketEngine::Shutdown() { Process(); - for (std::map<int, Socket *>::const_iterator it = Sockets.begin(), it_end = Sockets.end(); it != it_end; ++it) - delete it->second; + for (std::map<int, Socket *>::const_iterator it = Sockets.begin(), it_end = Sockets.end(); it != it_end;) + { + Socket *s = it->second; + ++it; + delete s; + } Sockets.clear(); delete [] events; diff --git a/src/socketengines/socketengine_poll.cpp b/src/socketengines/socketengine_poll.cpp index 3202bbe29..773a89839 100644 --- a/src/socketengines/socketengine_poll.cpp +++ b/src/socketengines/socketengine_poll.cpp @@ -39,8 +39,12 @@ void SocketEngine::Shutdown() { Process(); - for (std::map<int, Socket *>::const_iterator it = Sockets.begin(), it_end = Sockets.end(); it != it_end; ++it) - delete it->second; + for (std::map<int, Socket *>::const_iterator it = Sockets.begin(), it_end = Sockets.end(); it != it_end;) + { + Socket *s = it->second; + ++it; + delete s; + } Sockets.clear(); delete [] events; diff --git a/src/socketengines/socketengine_select.cpp b/src/socketengines/socketengine_select.cpp index e23046b79..99a0fefe1 100644 --- a/src/socketengines/socketengine_select.cpp +++ b/src/socketengines/socketengine_select.cpp @@ -15,8 +15,12 @@ void SocketEngine::Shutdown() { Process(); - for (std::map<int, Socket *>::const_iterator it = Sockets.begin(), it_end = Sockets.end(); it != it_end; ++it) - delete it->second; + for (std::map<int, Socket *>::const_iterator it = Sockets.begin(), it_end = Sockets.end(); it != it_end;) + { + Socket *s = it->second; + ++it; + delete s; + } Sockets.clear(); MaxFD = 0; |