From 6f8aa356089161cbbd557f4c9ed4189ed92151b2 Mon Sep 17 00:00:00 2001
From: Oliver Sander <sander@igpm.rwth-aachen.de>
Date: Mon, 27 Apr 2009 15:40:42 +0000
Subject: [PATCH] use an auto_ptr for the hesse Matrix

[[Imported from SVN: r4103]]
---
 src/riemanniantrsolver.cc | 5 +----
 src/riemanniantrsolver.hh | 4 ++--
 2 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/src/riemanniantrsolver.cc b/src/riemanniantrsolver.cc
index 124d095d..df590b34 100644
--- a/src/riemanniantrsolver.cc
+++ b/src/riemanniantrsolver.cc
@@ -115,10 +115,7 @@ setup(const GridType& grid,
     //    Create Hessian matrix and its occupation structure
     // ////////////////////////////////////////////////////////////
     
-    if (hessianMatrix_)
-        delete hessianMatrix_;
-
-    hessianMatrix_ = new MatrixType;
+    hessianMatrix_ = std::auto_ptr<MatrixType>(new MatrixType);
     Dune::MatrixIndexSet indices(grid_->size(1), grid_->size(1));
     assembler_->getNeighborsPerVertex(indices);
     indices.exportIdx(*hessianMatrix_);
diff --git a/src/riemanniantrsolver.hh b/src/riemanniantrsolver.hh
index 6ee74616..fe0b26d1 100644
--- a/src/riemanniantrsolver.hh
+++ b/src/riemanniantrsolver.hh
@@ -38,7 +38,7 @@ public:
 
     RiemannianTrustRegionSolver()
         : IterativeSolver<std::vector<TargetSpace>, Dune::BitSetVector<blocksize> >(0,100,NumProc::FULL),
-          hessianMatrix_(NULL), h1SemiNorm_(NULL)
+          hessianMatrix_(std::auto_ptr<MatrixType>(NULL)), h1SemiNorm_(NULL)
     {}
 
     void setup(const GridType& grid, 
@@ -100,7 +100,7 @@ protected:
     double qpTolerance_;
 
     /** \brief Hessian matrix */
-    MatrixType* hessianMatrix_;
+    std::auto_ptr<MatrixType> hessianMatrix_;
 
     /** \brief The assembler for the material law */
     const GeodesicFEAssembler<typename GridType::LeafGridView, TargetSpace>* assembler_;
-- 
GitLab