aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormegamage <none@none>2009-03-24 17:55:05 -0600
committermegamage <none@none>2009-03-24 17:55:05 -0600
commit4154efa5366afb6c627270bee4bfb324581eacb9 (patch)
tree0096b66d282b17a7bd499aaa1a27cf751fa50caa
parentf40773a24df8a000a757fa163cf33359eb67d835 (diff)
*Fix a crash caused by deleting a obj twice.
--HG-- branch : trunk
-rw-r--r--src/game/Map.cpp6
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.");
}