[11534] Guild disban memory losses and unsafe code.

* Make sure that guild object deleted in all cases after disband.
* Avoid recusive like way call Disband from DelMember
This commit is contained in:
VladimirMangos 2011-05-25 03:19:42 +04:00
parent b5c3ec952f
commit 2cbde12458
6 changed files with 59 additions and 19 deletions

View file

@ -4174,8 +4174,16 @@ void Player::DeleteFromDB(ObjectGuid playerguid, uint32 accountId, bool updateRe
// remove from guild
if (uint32 guildId = GetGuildIdFromDB(playerguid))
{
if (Guild* guild = sGuildMgr.GetGuildById(guildId))
guild->DelMember(playerguid);
{
if (guild->DelMember(playerguid))
{
guild->Disband();
delete guild;
}
}
}
// remove from arena teams
LeaveAllArenaTeams(playerguid);