rendered paste bodyIndex: InstanceSaveMgr.cpp
===================================================================
--- InstanceSaveMgr.cpp (revision 748)
+++ 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;
@@ -153,9 +162,12 @@
InstanceInfo::const_iterator itr;
for (itr = mInstanceInfoList.begin();itr != mInstanceInfoList.end(); itr++)
{
- Instance_Map_Info_Holder *p = itr->second;
- if(p->GetMapInfo()->type == INSTANCE_RAID)
- continue;
+Instance_Map_Info_Holder *p = itr->second;
+MapInfo *pMapInfo = p->GetMapInfo();
+ if(!pMapInfo)
+ continue;
+ if(pMapInfo->type == INSTANCE_RAID)
+continue;
if(pPlayer->InGroup())
result = p->RemoveGroup(pPlayer->GetGroup()->GetID());
@@ -209,6 +221,9 @@
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++
bool InstanceSavingManagement::IsPlayerSavedToMap(uint32 mapid, Player *pPlayer)
{
+ if(!pPlayer)
+ return false;
+
instanceInfoListMutex.Acquire();
InstanceInfo::iterator itr = mInstanceInfoList.find( mapid );
@@ -230,6 +245,9 @@
}
bool InstanceSavingManagement::IsPlayerSavedToInstanceId(uint32 mapid, uint32 instanceid, Player *pPlayer)
{
+ if(!pPlayer)
+ return false;
+
instanceInfoListMutex.Acquire();
InstanceInfo::iterator itr = mInstanceInfoList.find( mapid );
@@ -358,6 +376,9 @@
}
void InstanceSavingManagement::SaveObjectStateToInstance(Unit *pUnit)
{
+ if(!pUnit)
+ return;
+
instanceInfoListMutex.Acquire();
InstanceInfo::iterator itr = mInstanceInfoList.find( pUnit->GetMapId() );
if(itr != mInstanceInfoList.end())
@@ -392,6 +413,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 +437,9 @@
void InstanceSavingManagement::BuildRaidSavedInstancesForPlayer(Player *pPlayer)
{
+ if(!pPlayer)
+ return;
+
/*hmm packet structure for this one?
counter, mapid time instanceid
*/