fix(Core/Misc): Memleaks fixes. Part I. (#5546)

This commit is contained in:
UltraNix
2021-04-30 17:03:02 +02:00
committed by GitHub
parent 632883538c
commit adad43a15c
9 changed files with 51 additions and 37 deletions

View File

@@ -364,14 +364,14 @@ void MotionMaster::MoveCircleTarget(Unit* target)
return;
}
Position* point = target->GetMeleeAttackPoint(_owner);
if (point == nullptr)
Position pos;
if (!target->GetMeleeAttackPoint(_owner, pos))
{
return;
}
Movement::MoveSplineInit init(_owner);
init.MoveTo(point->m_positionX, point->m_positionY, point->m_positionZ, false);
init.MoveTo(pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ(), false);
init.SetWalk(true);
init.SetFacing(target);
init.Launch();

View File

@@ -13,6 +13,15 @@
#include "Spell.h"
#include "Util.h"
template<class T>
RandomMovementGenerator<T>::~RandomMovementGenerator() { }
template<>
RandomMovementGenerator<Creature>::~RandomMovementGenerator()
{
delete _pathGenerator;
}
template<>
void RandomMovementGenerator<Creature>::_setRandomLocation(Creature* creature)
{

View File

@@ -34,6 +34,7 @@ public:
for (uint8 i = 0; i < RANDOM_POINTS_NUMBER; ++i)
_validPointsVector[RANDOM_POINTS_NUMBER].push_back(i);
}
~RandomMovementGenerator();
void _setRandomLocation(T*);
void DoInitialize(T*);

View File

@@ -29,7 +29,7 @@ class ChaseMovementGenerator : public MovementGeneratorMedium<T, ChaseMovementGe
public:
ChaseMovementGenerator(Unit* target, std::optional<ChaseRange> range = {}, std::optional<ChaseAngle> angle = {})
: TargetedMovementGeneratorBase(target), i_path(nullptr), i_recheckDistance(0), i_recalculateTravel(true), _range(range), _angle(angle) {}
~ChaseMovementGenerator() {}
~ChaseMovementGenerator() { delete i_path; }
MovementGeneratorType GetMovementGeneratorType() { return CHASE_MOTION_TYPE; }
@@ -65,7 +65,7 @@ class FollowMovementGenerator : public MovementGeneratorMedium<T, FollowMovement
public:
FollowMovementGenerator(Unit* target, float range, ChaseAngle angle)
: TargetedMovementGeneratorBase(target), i_path(nullptr), i_recheckDistance(0), i_recalculateTravel(true), _range(range), _angle(angle) {}
~FollowMovementGenerator() {}
~FollowMovementGenerator() { delete i_path; }
MovementGeneratorType GetMovementGeneratorType() { return FOLLOW_MOTION_TYPE; }