diff --git a/poincare/include/poincare/evaluation.h b/poincare/include/poincare/evaluation.h index ef831a250..2da37f262 100644 --- a/poincare/include/poincare/evaluation.h +++ b/poincare/include/poincare/evaluation.h @@ -63,7 +63,7 @@ public: std::complex undef = std::complex(NAN, NAN); return MatrixComplex(&undef, 1, 1); } - virtual ~MatrixComplex() {} + ~MatrixComplex(); typename Poincare::Evaluation::Type type() const override { return Poincare::Evaluation::Type::MatrixComplex; } const std::complex complexOperand(int i) const { return m_operands[i]; } int numberOfComplexOperands() const { return m_numberOfRows*m_numberOfColumns; } diff --git a/poincare/src/evaluation.cpp b/poincare/src/evaluation.cpp index daf6ac91d..004b5a039 100644 --- a/poincare/src/evaluation.cpp +++ b/poincare/src/evaluation.cpp @@ -131,6 +131,13 @@ MatrixComplex::MatrixComplex(std::complex * operands, int numberOfRows, in } } +template +MatrixComplex::~MatrixComplex() { + if (m_operands != nullptr) { + delete [] m_operands; + } +} + template Expression * MatrixComplex::complexToExpression(Expression::ComplexFormat complexFormat) const { Expression ** operands = new Expression * [numberOfComplexOperands()];