diff options
author | Shauren <shauren.trinity@gmail.com> | 2011-04-04 22:26:34 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2011-04-04 22:27:15 +0200 |
commit | 379308140b7e958c10fef72fcba872648a354c85 (patch) | |
tree | e02164ef994c81bd3c1370ef4aca58721bec6aa4 /src | |
parent | 804953911e8db5873ec324649754f6f5096412f6 (diff) |
Core/Player: Prevented infinite growth of allowedCharsToLogin container and changed its type to better reflect its purpose
Diffstat (limited to 'src')
-rwxr-xr-x | src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp | 3 | ||||
-rwxr-xr-x | src/server/game/Server/WorldSession.h | 10 |
2 files changed, 5 insertions, 8 deletions
diff --git a/src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp b/src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp index 866cdf91746..a28bee60c76 100755 --- a/src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp @@ -205,6 +205,7 @@ void WorldSession::HandleCharEnum(QueryResult result) data << num; + _allowedCharsToLogin.clear(); if (result) { do @@ -213,7 +214,7 @@ void WorldSession::HandleCharEnum(QueryResult result) sLog->outDetail("Loading char guid %u from account %u.",guidlow,GetAccountId()); if (Player::BuildEnumData(result, &data)) { - m_AllowedCharsToLogin.push_back(guidlow); + _allowedCharsToLogin.insert(guidlow); ++num; } } diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index b881b0b4140..a295d285403 100755 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -883,17 +883,13 @@ class WorldSession void LogUnprocessedTail(WorldPacket *packet); // EnumData helpers - bool CharCanLogin(uint32 LowGUID) + bool CharCanLogin(uint32 lowGUID) { - if (find(m_AllowedCharsToLogin.begin(), - m_AllowedCharsToLogin.end(), - LowGUID) == m_AllowedCharsToLogin.end()) - return false; - return true; + return _allowedCharsToLogin.find(lowGUID) != _allowedCharsToLogin.end(); } // this stores the GUIDs of the characters who can login // characters who failed on Player::BuildEnumData shouldn't login - std::list<uint32> m_AllowedCharsToLogin; + std::set<uint32> _allowedCharsToLogin; uint32 m_GUIDLow; // set loggined or recently logout player (while m_playerRecentlyLogout set) Player *_player; |