From 4154efa5366afb6c627270bee4bfb324581eacb9 Mon Sep 17 00:00:00 2001 From: megamage Date: Tue, 24 Mar 2009 17:55:05 -0600 Subject: *Fix a crash caused by deleting a obj twice. --HG-- branch : trunk --- src/game/Map.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src') 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::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."); } -- cgit v1.2.3