diff options
author | Tiger Wang <ziwei.tiger@hotmail.co.uk> | 2015-09-19 21:03:45 +0200 |
---|---|---|
committer | Tiger Wang <ziwei.tiger@hotmail.co.uk> | 2015-09-19 21:03:45 +0200 |
commit | 7c884df26c335102da24dc7b6d015567bdf7d8a6 (patch) | |
tree | 0cf99c391d3145b18b9628e193ceb73760361aa9 /src | |
parent | Merge pull request #2484 from cuberite/clientPerformance (diff) | |
parent | Fixed wrong assumtion regarding RemoveClient (diff) | |
download | cuberite-7c884df26c335102da24dc7b6d015567bdf7d8a6.tar cuberite-7c884df26c335102da24dc7b6d015567bdf7d8a6.tar.gz cuberite-7c884df26c335102da24dc7b6d015567bdf7d8a6.tar.bz2 cuberite-7c884df26c335102da24dc7b6d015567bdf7d8a6.tar.lz cuberite-7c884df26c335102da24dc7b6d015567bdf7d8a6.tar.xz cuberite-7c884df26c335102da24dc7b6d015567bdf7d8a6.tar.zst cuberite-7c884df26c335102da24dc7b6d015567bdf7d8a6.zip |
Diffstat (limited to '')
-rw-r--r-- | src/Chunk.cpp | 6 | ||||
-rw-r--r-- | src/Chunk.h | 4 |
2 files changed, 6 insertions, 4 deletions
diff --git a/src/Chunk.cpp b/src/Chunk.cpp index 6b061c53f..7a6938b77 100644 --- a/src/Chunk.cpp +++ b/src/Chunk.cpp @@ -1885,7 +1885,11 @@ bool cChunk::AddClient(cClientHandle * a_Client) void cChunk::RemoveClient(cClientHandle * a_Client) { - m_LoadedByClient.erase(std::remove(m_LoadedByClient.begin(), m_LoadedByClient.end(), a_Client)); + auto itr = std::remove(m_LoadedByClient.begin(), m_LoadedByClient.end(), a_Client); + // We should always remove at most one client. + ASSERT(std::distance(itr, m_LoadedByClient.end()) <= 1); + // Note: itr can equal m_LoadedByClient.end() + m_LoadedByClient.erase(itr, m_LoadedByClient.end()); if (!a_Client->IsDestroyed()) { diff --git a/src/Chunk.h b/src/Chunk.h index 683965c62..6316f6910 100644 --- a/src/Chunk.h +++ b/src/Chunk.h @@ -441,9 +441,7 @@ public: // Makes a copy of the list cClientHandleList GetAllClients(void) const { - cClientHandleList copy; - std::copy(m_LoadedByClient.begin(), m_LoadedByClient.end(), std::back_inserter(copy)); - return copy; + return cClientHandleList(m_LoadedByClient.begin(), m_LoadedByClient.end()); } private: |