diff options
author | megamage <none@none> | 2009-03-24 22:25:22 -0600 |
---|---|---|
committer | megamage <none@none> | 2009-03-24 22:25:22 -0600 |
commit | fe08615d17c5d6830d7a622818002a7517df6311 (patch) | |
tree | 3529a0f3bfc214a8737e67529348e549ebd128c2 /src | |
parent | 8413356d0ef5231117ff0717d08fed9b1ab90002 (diff) |
*Try to fix a crash bug.
--HG--
branch : trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/game/Creature.cpp | 12 | ||||
-rw-r--r-- | src/game/ObjectGridLoader.cpp | 1 | ||||
-rw-r--r-- | src/game/Unit.cpp | 16 |
3 files changed, 9 insertions, 20 deletions
diff --git a/src/game/Creature.cpp b/src/game/Creature.cpp index 7d0db29b68c..8c120309217 100644 --- a/src/game/Creature.cpp +++ b/src/game/Creature.cpp @@ -162,12 +162,16 @@ m_meleeDamageSchoolMask(SPELL_SCHOOL_MASK_NORMAL),m_creatureInfo(NULL), m_DBTabl Creature::~Creature() { - CleanupsBeforeDelete(); - m_vendorItemCounts.clear(); - delete i_AI; - i_AI = NULL; + if(i_AI) + { + delete i_AI; + i_AI = NULL; + } + + if(m_uint32Values) + sLog.outDetail("Deconstruct Creature Entry = %u", GetEntry()); } void Creature::AddToWorld() diff --git a/src/game/ObjectGridLoader.cpp b/src/game/ObjectGridLoader.cpp index 14b1865cfa7..0c1de5859e9 100644 --- a/src/game/ObjectGridLoader.cpp +++ b/src/game/ObjectGridLoader.cpp @@ -285,6 +285,7 @@ ObjectGridUnloader::Visit(CreatureMapType &m) if(!sWorld.getConfig(CONFIG_SAVE_RESPAWN_TIME_IMMEDIATELY)) obj->SaveRespawnTime(); ///- object will get delinked from the manager when deleted + obj->CleanupsBeforeDelete(); delete obj; } } diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 159ce634a2d..ac6881a4356 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -260,22 +260,6 @@ Unit::~Unit() RemoveAllDynObjects(); if(m_charmInfo) delete m_charmInfo; - - if(m_uint32Values) - { - sLog.outDetail("Deconstruct Unit Entry = %u", GetEntry()); - /*for(int i = 0; i < TOTAL_AURAS; ++i) - { - if(m_modAuras[i].begin() != m_modAuras[i].end()) - sLog.outError("Unit %u has mod auras during deconstruction", GetEntry()); - } - if(m_scAuras.begin() != m_scAuras.end()) - sLog.outError("Unit %u has sc auras during deconstruction", GetEntry()); - if(m_interruptableAuras.begin() != m_interruptableAuras.end()) - sLog.outError("Unit %u has interruptable auras during deconstruction", GetEntry()); - if(m_ccAuras.begin() != m_ccAuras.end()) - sLog.outError("Unit %u has cc auras during deconstruction", GetEntry());*/ - } } void Unit::Update( uint32 p_time ) |