This should fix crashes introduced in revision 4e75fea59c6c (9138)

--HG--
branch : trunk
This commit is contained in:
Shauren
2010-08-03 21:38:49 +02:00
parent feebd3a24a
commit b70790693d
2 changed files with 11 additions and 11 deletions
+6 -6
View File
@@ -199,8 +199,8 @@ ObjectMgr::~ObjectMgr()
delete[] playerInfo[race][class_].levelInfo; delete[] playerInfo[race][class_].levelInfo;
// free group and guild objects // free group and guild objects
for (GroupMap::iterator itr = mGroupMap.begin(); itr != mGroupMap.end(); ++itr) for (GroupSet::iterator itr = mGroupSet.begin(); itr != mGroupSet.end(); ++itr)
delete itr->second; delete *itr;
for (GuildMap::iterator itr = mGuildMap.begin(); itr != mGuildMap.end(); ++itr) for (GuildMap::iterator itr = mGuildMap.begin(); itr != mGuildMap.end(); ++itr)
delete itr->second; delete itr->second;
@@ -215,11 +215,11 @@ ObjectMgr::~ObjectMgr()
itr->second.Clear(); itr->second.Clear();
} }
Group * ObjectMgr::GetGroupByGUID(const uint32 &guid) const Group * ObjectMgr::GetGroupByGUID(uint32 guid) const
{ {
GroupMap::const_iterator itr = mGroupMap.find(guid); for (GroupSet::const_iterator itr = mGroupSet.begin(); itr != mGroupSet.end(); ++itr)
if (itr != mGroupMap.end()) if ((*itr)->GetLowGUID() == guid)
return itr->second; return *itr;
return NULL; return NULL;
} }
+5 -5
View File
@@ -377,7 +377,7 @@ class ObjectMgr
public: public:
typedef UNORDERED_MAP<uint32, Item*> ItemMap; typedef UNORDERED_MAP<uint32, Item*> ItemMap;
typedef UNORDERED_MAP<uint32, Group *> GroupMap; typedef std::set<Group *> GroupSet;
typedef UNORDERED_MAP<uint32, Guild *> GuildMap; typedef UNORDERED_MAP<uint32, Guild *> GuildMap;
@@ -410,9 +410,9 @@ class ObjectMgr
void LoadGameobjectInfo(); void LoadGameobjectInfo();
void AddGameobjectInfo(GameObjectInfo *goinfo); void AddGameobjectInfo(GameObjectInfo *goinfo);
Group * GetGroupByGUID(const uint32 &guid) const; Group * GetGroupByGUID(uint32 guid) const;
void AddGroup(Group* group) { mGroupMap[group->GetLowGUID()] = group; } void AddGroup(Group* group) { mGroupSet.insert(group); }
void RemoveGroup(Group* group) { mGroupMap.erase(group->GetLowGUID()); } void RemoveGroup(Group* group) { mGroupSet.erase(group); }
Guild* GetGuildByLeader(uint64 const&guid) const; Guild* GetGuildByLeader(uint64 const&guid) const;
Guild* GetGuildById(uint32 GuildId) const; Guild* GetGuildById(uint32 GuildId) const;
@@ -1012,7 +1012,7 @@ class ObjectMgr
typedef std::set<uint32> TavernAreaTriggerSet; typedef std::set<uint32> TavernAreaTriggerSet;
typedef std::set<uint32> GameObjectForQuestSet; typedef std::set<uint32> GameObjectForQuestSet;
GroupMap mGroupMap; GroupSet mGroupSet;
GuildMap mGuildMap; GuildMap mGuildMap;
ArenaTeamMap mArenaTeamMap; ArenaTeamMap mArenaTeamMap;