Index: src/game/InstanceSaveMgr.cpp =================================================================== --- src/game/InstanceSaveMgr.cpp (revision 748) +++ src/game/InstanceSaveMgr.cpp (working copy) @@ -37,6 +37,9 @@ void InstanceSavingManagement::BuildSavedInstancesForPlayer(Player *pPlayer) { + if(!pPlayer) + return; + bool result = false; bool hasBeenSaved = false; WorldPacket data; @@ -102,6 +105,9 @@ void InstanceSavingManagement::SavePlayerToInstance(Player *pPlayer, uint32 mapid) { + if(!pPlayer) + return; + WorldPacket data; instanceInfoListMutex.Acquire(); @@ -146,6 +152,9 @@ void InstanceSavingManagement::ResetSavedInstancesForPlayer(Player *pPlayer) { + if(!pPlayer) + return; + bool result; WorldPacket data; @@ -209,6 +218,9 @@ //++++++++++++++++++++++++++++++++++++++++++++++++++++++++ bool InstanceSavingManagement::IsPlayerSavedToMap(uint32 mapid, Player *pPlayer) { + if(!pPlayer) + return false; + instanceInfoListMutex.Acquire(); InstanceInfo::iterator itr = mInstanceInfoList.find( mapid ); @@ -230,6 +242,9 @@ } bool InstanceSavingManagement::IsPlayerSavedToInstanceId(uint32 mapid, uint32 instanceid, Player *pPlayer) { + if(!pPlayer) + return false; + instanceInfoListMutex.Acquire(); InstanceInfo::iterator itr = mInstanceInfoList.find( mapid ); @@ -358,6 +373,9 @@ } void InstanceSavingManagement::SaveObjectStateToInstance(Unit *pUnit) { + if(!pUnit) + return; + instanceInfoListMutex.Acquire(); InstanceInfo::iterator itr = mInstanceInfoList.find( pUnit->GetMapId() ); if(itr != mInstanceInfoList.end()) @@ -392,6 +410,9 @@ Instance_Map_InstanceId_Holder *InstanceSavingManagement::GetRaidAndMMInstance(uint32 mapid, Player * pPlayer) { + if(!pPlayer) + return NULL; + instanceInfoListMutex.Acquire(); InstanceInfo::iterator itr = mInstanceInfoList.find( mapid ); if(itr != mInstanceInfoList.end()) @@ -413,6 +434,9 @@ void InstanceSavingManagement::BuildRaidSavedInstancesForPlayer(Player *pPlayer) { + if(!pPlayer) + return; + /*hmm packet structure for this one? counter, mapid time instanceid */