]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Use a unique_ptr to avoid a memory leak.
authorDavid Wells <wellsd2@rpi.edu>
Fri, 2 Oct 2015 20:47:29 +0000 (16:47 -0400)
committerDavid Wells <wellsd2@rpi.edu>
Fri, 2 Oct 2015 20:47:29 +0000 (16:47 -0400)
source/fe/fe_q_bubbles.cc

index 7616ac57a3402a1d801ea9dcec982a1cd8cfd746..1c00f08d997fd34a409839f20971bba1dbe4932c 100644 (file)
@@ -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());

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.