diff --git a/include/hpp/centroidal-dynamics/centroidal_dynamics.hh b/include/hpp/centroidal-dynamics/centroidal_dynamics.hh index dec780509a7d5636b35b4afdbef7ca7d0521b105..46729c11bed2db0ef7a91ccfc7fdf41838e0067a 100644 --- a/include/hpp/centroidal-dynamics/centroidal_dynamics.hh +++ b/include/hpp/centroidal-dynamics/centroidal_dynamics.hh @@ -97,6 +97,8 @@ class CENTROIDAL_DYNAMICS_DLLAPI Equilibrium { Equilibrium(const Equilibrium& other); + ~Equilibrium(); + /** * @brief Returns the useWarmStart flag. * @return True if the LP solver is allowed to use warm start, false otherwise. diff --git a/include/hpp/centroidal-dynamics/solver_LP_abstract.hh b/include/hpp/centroidal-dynamics/solver_LP_abstract.hh index 11b1f49303c3c7d0e02aff01ce25c5bd2f03fa7f..85226c419fea364e66109fe2b051f263b7df12ab 100644 --- a/include/hpp/centroidal-dynamics/solver_LP_abstract.hh +++ b/include/hpp/centroidal-dynamics/solver_LP_abstract.hh @@ -51,6 +51,8 @@ class CENTROIDAL_DYNAMICS_DLLAPI Solver_LP_abstract { m_useWarmStart = true; } + virtual ~Solver_LP_abstract() {} + /** * @brief Create a new LP solver of the specified type. * @param solverType Type of LP solver. diff --git a/include/hpp/centroidal-dynamics/solver_LP_qpoases.hh b/include/hpp/centroidal-dynamics/solver_LP_qpoases.hh index 67284f1e87888ce1c0a61286d58c565c5392f58f..d292c41edc482c525284e369278a1ad81facfdba 100644 --- a/include/hpp/centroidal-dynamics/solver_LP_qpoases.hh +++ b/include/hpp/centroidal-dynamics/solver_LP_qpoases.hh @@ -25,6 +25,8 @@ class CENTROIDAL_DYNAMICS_DLLAPI Solver_LP_qpoases : public Solver_LP_abstract { public: Solver_LP_qpoases(); + virtual ~Solver_LP_qpoases() {} + /** Solve the linear program * minimize c' x * subject to Alb <= A x <= Aub diff --git a/src/centroidal_dynamics.cpp b/src/centroidal_dynamics.cpp index 3c5428b5d8e1137d9b486b2dad2d3f21c2d683b4..9f08107aab04b70884ed0b6a63cc26ef3e19b0c0 100644 --- a/src/centroidal_dynamics.cpp +++ b/src/centroidal_dynamics.cpp @@ -72,6 +72,10 @@ Equilibrium::Equilibrium(const string& name, const double mass, const unsigned i m_D.block<3, 3>(3, 0) = crossMatrix(-m_mass * m_gravity); } +Equilibrium::~Equilibrium(){ + delete m_solver; +} + bool Equilibrium::computeGenerators(Cref_matrixX3 contactPoints, Cref_matrixX3 contactNormals, double frictionCoefficient, const bool perturbate) { long int c = contactPoints.rows();