Skip to content

Commit d9234ce

Browse files
Merge pull request #633 from TimPushkin/fix-algorithm-leak
Fix memory leak in SparseOptimizer::setAlgorithm
2 parents 5212e0a + d0840cb commit d9234ce

1 file changed

Lines changed: 5 additions & 1 deletion

File tree

g2o/core/sparse_optimizer.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -560,8 +560,12 @@ void SparseOptimizer::discardTop(SparseOptimizer::VertexContainer& vlist) {
560560
void SparseOptimizer::setVerbose(bool verbose) { _verbose = verbose; }
561561

562562
void SparseOptimizer::setAlgorithm(OptimizationAlgorithm* algorithm) {
563-
if (_algorithm) // reset the optimizer for the formerly used solver
563+
if (_algorithm) {
564+
// reset the optimizer for the formerly used solver in case release() won't
565+
// delete it
564566
_algorithm->setOptimizer(nullptr);
567+
release(_algorithm);
568+
}
565569

566570
_algorithm = algorithm;
567571

0 commit comments

Comments
 (0)