]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Simplify memory management in Patterns::List/Map. 4321/head
authorWolfgang Bangerth <bangerth@colostate.edu>
Tue, 25 Apr 2017 17:51:39 +0000 (11:51 -0600)
committerWolfgang Bangerth <bangerth@colostate.edu>
Wed, 26 Apr 2017 16:08:25 +0000 (10:08 -0600)
include/deal.II/base/parameter_handler.h
source/base/parameter_handler.cc

index 3eb4225351692312d634a793ea41c46c5debc737..1b5867af306b14892d558809111e9955b2f3ec60 100644 (file)
@@ -419,11 +419,6 @@ namespace Patterns
      */
     List (const List &other);
 
-    /**
-     * Destructor.
-     */
-    virtual ~List ();
-
     /**
      * Return <tt>true</tt> if the string is a comma-separated list of strings
      * each of which match the pattern given to the constructor.
@@ -473,7 +468,7 @@ namespace Patterns
     /**
      * Copy of the pattern that each element of the list has to satisfy.
      */
-    PatternBase *pattern;
+    std::unique_ptr<PatternBase> pattern;
 
     /**
      * Minimum number of elements the list must have.
@@ -539,11 +534,6 @@ namespace Patterns
      */
     Map (const Map &other);
 
-    /**
-     * Destructor.
-     */
-    virtual ~Map ();
-
     /**
      * Return <tt>true</tt> if the string is a comma-separated list of strings
      * each of which match the pattern given to the constructor.
@@ -594,8 +584,8 @@ namespace Patterns
      * Copy of the patterns that each key and each value of the map has to
      * satisfy.
      */
-    PatternBase *key_pattern;
-    PatternBase *value_pattern;
+    std::unique_ptr<PatternBase> key_pattern;
+    std::unique_ptr<PatternBase> value_pattern;
 
     /**
      * Minimum number of elements the list must have.
index d1c613e77f2a7be7393ee63d4870b532c5368aea..7bf9f1edc915f7620a1bb71cbdaf7fa6f0fa4104 100644 (file)
@@ -597,14 +597,6 @@ namespace Patterns
 
 
 
-  List::~List ()
-  {
-    delete pattern;
-    pattern = nullptr;
-  }
-
-
-
   bool List::match (const std::string &test_string_list) const
   {
     std::string tmp = test_string_list;
@@ -788,17 +780,6 @@ namespace Patterns
 
 
 
-  Map::~Map ()
-  {
-    delete key_pattern;
-    key_pattern = nullptr;
-
-    delete value_pattern;
-    value_pattern = nullptr;
-  }
-
-
-
   bool Map::match (const std::string &test_string_list) const
   {
     std::string tmp = test_string_list;

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.