From 6346116eb81bf7a843af793ee6781fd1f2440744 Mon Sep 17 00:00:00 2001 From: David Wells <wellsd2@rpi.edu> Date: Fri, 2 Oct 2015 16:47:29 -0400 Subject: [PATCH] Use a unique_ptr to avoid a memory leak. --- source/fe/fe_q_bubbles.cc | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/source/fe/fe_q_bubbles.cc b/source/fe/fe_q_bubbles.cc index 7616ac57a3..1c00f08d99 100644 --- a/source/fe/fe_q_bubbles.cc +++ b/source/fe/fe_q_bubbles.cc @@ -18,6 +18,7 @@ #include <deal.II/base/quadrature.h> #include <deal.II/base/qprojector.h> #include <deal.II/base/template_constraints.h> +#include <deal.II/base/std_cxx11/unique_ptr.h> #include <deal.II/fe/fe_q_bubbles.h> #include <deal.II/fe/fe_nothing.h> #include <deal.II/fe/fe_tools.h> @@ -54,26 +55,26 @@ namespace FE_Q_Bubbles_Helper // Initialize quadrature formula on fine cells MappingQ1<dim, spacedim> mapping; - Quadrature<dim> *q_fine; + std_cxx11::unique_ptr<Quadrature<dim> > q_fine; Quadrature<1> q_dummy(std::vector<Point<1> >(1), std::vector<double> (1,1.)); switch (dim) { case 1: if (spacedim==1) - q_fine = new QGauss<dim> (degree+1); + q_fine.reset(new QGauss<dim> (degree+1)); else if (spacedim==2) - q_fine = new QAnisotropic<dim>(QGauss<1>(degree+1), q_dummy); + q_fine.reset(new QAnisotropic<dim>(QGauss<1>(degree+1), q_dummy)); else - q_fine = new QAnisotropic<dim>(QGauss<1>(degree+1), q_dummy, q_dummy); + q_fine.reset(new QAnisotropic<dim>(QGauss<1>(degree+1), q_dummy, q_dummy)); break; case 2: if (spacedim==2) - q_fine = new QGauss<dim> (degree+1); + q_fine.reset(new QGauss<dim> (degree+1)); else - q_fine = new QAnisotropic<dim>(QGauss<1>(degree+1), QGauss<1>(degree+1), q_dummy); + q_fine.reset(new QAnisotropic<dim>(QGauss<1>(degree+1), QGauss<1>(degree+1), q_dummy)); break; case 3: - q_fine = new QGauss<dim> (degree+1); + q_fine.reset(new QGauss<dim> (degree+1)); break; default: AssertThrow(false, ExcInternalError()); -- 2.39.5