diff options
| author | Shauren <shauren.trinity@gmail.com> | 2013-12-12 09:50:52 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2013-12-12 09:50:52 +0100 |
| commit | 54fd53f7e3575ad24b6daf88f628afdd52b9df04 (patch) | |
| tree | 3d2e8b93dff4e76ebfac9b143a04969e3716e939 /src/server/game/Entities/Unit | |
| parent | 385e2dba379d42cf09c9cb36bee728113769d528 (diff) | |
Core/Movement: Fixed possible invalid memory access
Diffstat (limited to 'src/server/game/Entities/Unit')
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 5 | ||||
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.h | 6 |
2 files changed, 6 insertions, 5 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 343adecbd4b..9bd7e1eb512 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -165,7 +165,7 @@ Unit::Unit(bool isWorldObject) : IsAIEnabled(false), NeedChangeAI(false), LastCharmerGUID(0), m_ControlledByPlayer(false), movespline(new Movement::MoveSpline()), i_AI(NULL), i_disabledAI(NULL), m_AutoRepeatFirstCast(false), m_procDeep(0), - m_removedAurasCount(0), i_motionMaster(this), m_ThreatManager(this), + m_removedAurasCount(0), i_motionMaster(new MotionMaster(this)), m_ThreatManager(this), m_vehicle(NULL), m_vehicleKit(NULL), m_unitTypeMask(UNIT_MASK_NONE), m_HostileRefManager(this), _lastDamagedTime(0) { @@ -293,6 +293,7 @@ Unit::~Unit() _DeleteRemovedAuras(); + delete i_motionMaster; delete m_charmInfo; delete movespline; @@ -362,7 +363,7 @@ void Unit::Update(uint32 p_time) } UpdateSplineMovement(p_time); - i_motionMaster.UpdateMotion(p_time); + i_motionMaster->UpdateMotion(p_time); } bool Unit::haveOffhandWeapon() const diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index e8a318dac6a..d9e49ab6a4d 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -2005,8 +2005,8 @@ class Unit : public WorldObject static Player* GetPlayer(WorldObject& object, uint64 guid); static Creature* GetCreature(WorldObject& object, uint64 guid); - MotionMaster* GetMotionMaster() { return &i_motionMaster; } - const MotionMaster* GetMotionMaster() const { return &i_motionMaster; } + MotionMaster* GetMotionMaster() { return i_motionMaster; } + const MotionMaster* GetMotionMaster() const { return i_motionMaster; } bool IsStopped() const { return !(HasUnitState(UNIT_STATE_MOVING)); } void StopMoving(); @@ -2187,7 +2187,7 @@ class Unit : public WorldObject virtual SpellSchoolMask GetMeleeDamageSchoolMask() const; - MotionMaster i_motionMaster; + MotionMaster* i_motionMaster; uint32 m_reactiveTimer[MAX_REACTIVE]; uint32 m_regenTimer; |
