diff options
| -rw-r--r-- | src/game/BattleGround.cpp | 11 | ||||
| -rw-r--r-- | src/shared/revision_nr.h | 2 |
2 files changed, 10 insertions, 3 deletions
diff --git a/src/game/BattleGround.cpp b/src/game/BattleGround.cpp index 98547970886..5d85a29ce3a 100644 --- a/src/game/BattleGround.cpp +++ b/src/game/BattleGround.cpp @@ -244,6 +244,7 @@ void BattleGround::Update(uint32 diff) { RemovePlayerAtLeave(itr->first, true, true);// remove player from BG m_OfflineQueue.pop_front(); // remove from offline queue + //do not use itr for anything, because it is erased in RemovePlayerAtLeave() } } } @@ -426,9 +427,15 @@ void BattleGround::Update(uint32 diff) m_EndTime += diff; if(m_EndTime >= TIME_TO_AUTOREMOVE) // 2 minutes { - for(BattleGroundPlayerMap::iterator itr = m_Players.begin(); itr != m_Players.end(); ++itr) + BattleGroundPlayerMap::iterator itr, next; + for(itr = m_Players.begin(); itr != m_Players.end(); itr = next) + { + next = itr; + ++next; + //itr is erased here! RemovePlayerAtLeave(itr->first, true, true);// remove player from BG - // do not change any battleground's private variables + // do not change any battleground's private variables + } } } diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 3c5eab9d398..b95fe701d19 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "7424" + #define REVISION_NR "7425" #endif // __REVISION_NR_H__ |
