Remove goto from Environment::removePlayer

master
Selat 2014-03-05 18:14:40 +03:00 committed by ShadowNinja
parent c9b64206f9
commit 2bc2ce3bd1
1 changed files with 8 additions and 10 deletions

View File

@ -85,19 +85,17 @@ void Environment::addPlayer(Player *player)
void Environment::removePlayer(u16 peer_id) void Environment::removePlayer(u16 peer_id)
{ {
DSTACK(__FUNCTION_NAME); DSTACK(__FUNCTION_NAME);
re_search:
for(std::list<Player*>::iterator i = m_players.begin(); for(std::list<Player*>::iterator i = m_players.begin();
i != m_players.end(); ++i) i != m_players.end();)
{ {
Player *player = *i; Player *player = *i;
if(player->peer_id != peer_id) if(player->peer_id == peer_id) {
continue; delete player;
i = m_players.erase(i);
delete player; } else {
m_players.erase(i); ++i;
// See if there is an another one }
// (shouldn't be, but just to be sure)
goto re_search;
} }
} }