From c9f43996f3147100627ee2c6f9da993ceb160113 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Wed, 25 Apr 2012 02:26:34 +0300 Subject: Improve iterators part 2. --- src/playerrelations.cpp | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) (limited to 'src/playerrelations.cpp') diff --git a/src/playerrelations.cpp b/src/playerrelations.cpp index d79a621d5..d4a72ceab 100644 --- a/src/playerrelations.cpp +++ b/src/playerrelations.cpp @@ -44,6 +44,11 @@ #define IGNORE_EMOTE_TIME 100 +typedef std::map PlayerRelations; +typedef PlayerRelations::const_iterator PlayerRelationsCIter; +typedef std::list PlayerRelationListeners; +typedef PlayerRelationListeners::const_iterator PlayerRelationListenersCIter; + class SortPlayersFunctor { public: @@ -130,9 +135,8 @@ PlayerRelationsManager::~PlayerRelationsManager() { delete_all(mIgnoreStrategies); - for (std::map::const_iterator it = mRelations.begin(); - it != mRelations.end(); ++it) + for (PlayerRelationsCIter it = mRelations.begin(), + it_end = mRelations.end(); it != it_end; ++ it) { delete it->second; } @@ -141,8 +145,11 @@ PlayerRelationsManager::~PlayerRelationsManager() void PlayerRelationsManager::clear() { StringVect *names = getPlayers(); - for (StringVectCIter it = names->begin(); it != names->end(); ++ it) + for (StringVectCIter it = names->begin(), it_end = names->end(); + it != it_end; ++ it) + { removePlayer(*it); + } delete names; names = nullptr; } @@ -209,8 +216,8 @@ void PlayerRelationsManager::init() // until the next update. } - for (std::list::const_iterator - it = mListeners.begin(); it != mListeners.end(); ++it) + for (PlayerRelationListenersCIter it = mListeners.begin(), + it_end = mListeners.end(); it != it_end; ++it) { (*it)->updateAll(); } @@ -237,8 +244,8 @@ void PlayerRelationsManager::store() void PlayerRelationsManager::signalUpdate(const std::string &name) { - for (std::list::const_iterator - it = mListeners.begin(); it != mListeners.end(); ++it) + for (PlayerRelationListenersCIter it = mListeners.begin(), + it_end = mListeners.end(); it != it_end; ++ it) { (*it)->updatedPlayer(name); } @@ -346,9 +353,8 @@ StringVect * PlayerRelationsManager::getPlayers() { StringVect *retval = new StringVect(); - for (std::map::const_iterator it = mRelations.begin(); - it != mRelations.end(); ++it) + for (PlayerRelationsCIter it = mRelations.begin(), + it_end = mRelations.end(); it != it_end; ++ it) { if (it->second) retval->push_back(it->first); @@ -364,9 +370,8 @@ StringVect *PlayerRelationsManager::getPlayersByRelation( { StringVect *retval = new StringVect(); - for (std::map::const_iterator it = mRelations.begin(); - it != mRelations.end(); ++it) + for (PlayerRelationsCIter it = mRelations.begin(), + it_end = mRelations.end(); it != it_end; ++ it) { if (it->second && it->second->mRelation == rel) retval->push_back(it->first); -- cgit v1.2.3-60-g2f50