From c4d8d30a39ff7b973c31fed532754f7c843c2673 Mon Sep 17 00:00:00 2001 From: Borja Ferrer Date: Fri, 5 Jan 2007 00:58:28 +0000 Subject: [PATCH] whoa this caused a memory LEEK --HG-- extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%40274 --- core/CPlayerManager.cpp | 12 ++++++++---- core/CPlayerManager.h | 3 +++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/core/CPlayerManager.cpp b/core/CPlayerManager.cpp index ea30b8c0..02952b24 100644 --- a/core/CPlayerManager.cpp +++ b/core/CPlayerManager.cpp @@ -67,10 +67,14 @@ void CPlayerManager::OnSourceModShutdown() void CPlayerManager::OnServerActivate(edict_t *pEdictList, int edictCount, int clientMax) { - /* Initialize all players */ - m_maxClients = clientMax; - m_PlayerCount = 0; - m_Players = new CPlayer[m_maxClients + 1]; + if (m_FirstPass) + { + /* Initialize all players */ + m_maxClients = clientMax; + m_PlayerCount = 0; + m_Players = new CPlayer[m_maxClients + 1]; + m_FirstPass = false; + } } bool CPlayerManager::OnClientConnect(edict_t *pEntity, const char *pszName, const char *pszAddress, char *reject, int maxrejectlen) diff --git a/core/CPlayerManager.h b/core/CPlayerManager.h index a3fd1630..042476bf 100644 --- a/core/CPlayerManager.h +++ b/core/CPlayerManager.h @@ -11,6 +11,8 @@ class CPlayer; class CPlayerManager : public SMGlobalClass { +public: + CPlayerManager() : m_FirstPass(true) {} public: //SMGlobalClass virtual void OnSourceModAllInitialized(); virtual void OnSourceModShutdown(); @@ -38,6 +40,7 @@ private: CPlayer *m_Players; int m_maxClients; int m_PlayerCount; + bool m_FirstPass; }; extern CPlayerManager g_PlayerManager;