diff options
author | megamage <none@none> | 2009-03-24 17:55:05 -0600 |
---|---|---|
committer | megamage <none@none> | 2009-03-24 17:55:05 -0600 |
commit | 4154efa5366afb6c627270bee4bfb324581eacb9 (patch) | |
tree | 0096b66d282b17a7bd499aaa1a27cf751fa50caa /src | |
parent | f40773a24df8a000a757fa163cf33359eb67d835 (diff) |
*Fix a crash caused by deleting a obj twice.
--HG--
branch : trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/game/Map.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/game/Map.cpp b/src/game/Map.cpp index f482d724af3..ac71fd5bd79 100644 --- a/src/game/Map.cpp +++ b/src/game/Map.cpp @@ -2022,8 +2022,8 @@ void Map::RemoveAllObjectsInRemoveList() //sLog.outDebug("Object remover 1 check."); while(!i_objectsToRemove.empty()) { - WorldObject* obj = *i_objectsToRemove.begin(); - i_objectsToRemove.erase(i_objectsToRemove.begin()); + std::set<WorldObject*>::iterator itr = i_objectsToRemove.begin(); + WorldObject* obj = *itr; switch(obj->GetTypeId()) { @@ -2052,6 +2052,8 @@ void Map::RemoveAllObjectsInRemoveList() sLog.outError("Non-grid object (TypeId: %u) in grid object removing list, ignored.",obj->GetTypeId()); break; } + + i_objectsToRemove.erase(itr); } //sLog.outDebug("Object remover 2 check."); } |