From d488fdfabd66413c440dcee0ab646f79c31a66d4 Mon Sep 17 00:00:00 2001
From: Oliver Sander <sander@igpm.rwth-aachen.de>
Date: Thu, 11 Feb 2010 21:48:18 +0000
Subject: [PATCH] fix memory leak by using an auto_ptr for the inner solver

[[Imported from SVN: r5548]]
---
 src/targetspacertrsolver.cc | 10 +++++-----
 src/targetspacertrsolver.hh |  2 +-
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/targetspacertrsolver.cc b/src/targetspacertrsolver.cc
index f44c2157..fdbd646d 100644
--- a/src/targetspacertrsolver.cc
+++ b/src/targetspacertrsolver.cc
@@ -33,11 +33,11 @@ setup(const AverageDistanceAssembler<TargetSpace>* assembler,
 
     EnergyNorm<MatrixType, CorrectionType>* energyNorm = new EnergyNorm<MatrixType, CorrectionType>(*innerSolverStep);
 
-    innerSolver_ = new ::LoopSolver<CorrectionType>(innerSolverStep,
-                                                    innerIterations,
-                                                    innerTolerance,
-                                                    energyNorm,
-                                                    Solver::QUIET);
+    innerSolver_ = std::auto_ptr< ::LoopSolver<CorrectionType> >(new ::LoopSolver<CorrectionType>(innerSolverStep,
+                                                                                                  innerIterations,
+                                                                                                  innerTolerance,
+                                                                                                  energyNorm,
+                                                                                                  Solver::QUIET));
 
     // //////////////////////////////////////////////////////////
     //   Create obstacles
diff --git a/src/targetspacertrsolver.hh b/src/targetspacertrsolver.hh
index 19a44f26..87219999 100644
--- a/src/targetspacertrsolver.hh
+++ b/src/targetspacertrsolver.hh
@@ -71,7 +71,7 @@ protected:
     const AverageDistanceAssembler<TargetSpace>* assembler_;
 
     /** \brief The solver for the quadratic inner problems */
-    ::LoopSolver<CorrectionType>* innerSolver_;
+    std::auto_ptr< ::LoopSolver<CorrectionType> > innerSolver_;
 
 //     /** \brief Dummy field for the trustregiongsstep */
 //     Dune::BitSetVector<blocksize> dummyObstacle_;
-- 
GitLab