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