From 763e52c01a207d01f14fb67b418ab05970e6ff12 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Pecka?= <peckato1@fit.cvut.cz>
Date: Thu, 27 Feb 2014 10:01:59 +0100
Subject: [PATCH] ConversionHandler leaks

---
 aconversions/src/aconversion/ConversionHandler.cpp | 6 +++---
 aconversions/src/fa2re/AbstractFAtoREConverter.h   | 2 +-
 aconversions/src/fa2rg/AbstractFAtoRGConverter.h   | 2 +-
 aconversions/src/fa2rg/FAtoLRGConverter.cpp        | 5 +++++
 aconversions/src/fa2rg/FAtoLRGConverter.h          | 1 +
 aconversions/src/fa2rg/FAtoRRGConverter.cpp        | 6 ++++++
 aconversions/src/fa2rg/FAtoRRGConverter.h          | 1 +
 aconversions/src/re2fa/AbstractREtoFAConverter.h   | 2 +-
 aconversions/src/re2fa/Brzozowski.cpp              | 5 +++++
 aconversions/src/re2fa/Brzozowski.h                | 1 +
 aconversions/src/re2fa/Glushkov.cpp                | 5 +++++
 aconversions/src/re2fa/Glushkov.h                  | 1 +
 aconversions/src/re2fa/Thompson.cpp                | 6 ++++++
 aconversions/src/re2fa/Thompson.h                  | 1 +
 aconversions/src/rg2fa/AbstractRGtoFAConverter.h   | 2 +-
 aconversions/src/rg2fa/LRGtoFAConverter.cpp        | 5 +++++
 aconversions/src/rg2fa/LRGtoFAConverter.h          | 1 +
 aconversions/src/rg2fa/RRGtoFAConverter.cpp        | 6 ++++++
 aconversions/src/rg2fa/RRGtoFAConverter.h          | 1 +
 19 files changed, 52 insertions(+), 7 deletions(-)

diff --git a/aconversions/src/aconversion/ConversionHandler.cpp b/aconversions/src/aconversion/ConversionHandler.cpp
index 116b69488d..8de6c2abd7 100644
--- a/aconversions/src/aconversion/ConversionHandler.cpp
+++ b/aconversions/src/aconversion/ConversionHandler.cpp
@@ -68,7 +68,7 @@ void ConversionHandler::convertGrammar( ostream & out )
         }
 
         conv->convert( ).toXML( out );
-        // delete conv;
+        delete conv;
 
     }
     else if( m_target == REGULAR_EXPRESSION )
@@ -91,7 +91,7 @@ void ConversionHandler::convertRegExp( ostream & out )
             conv = new Glushkov( regexp );
 
         conv->convert( ).toXML( out );
-        // delete conv;
+        delete conv;
 
     }
     else if( m_target == REGULAR_GRAMMAR )
@@ -126,7 +126,7 @@ void ConversionHandler::convertAutomata( ostream & out )
             conv = new FAtoRRGConverter( fsm );
 
         conv->convert( ).toXML( out );
-        //delete conv;
+        delete conv;
     }
 }
 
diff --git a/aconversions/src/fa2re/AbstractFAtoREConverter.h b/aconversions/src/fa2re/AbstractFAtoREConverter.h
index e45fc67ad8..0dee38f1d3 100644
--- a/aconversions/src/fa2re/AbstractFAtoREConverter.h
+++ b/aconversions/src/fa2re/AbstractFAtoREConverter.h
@@ -15,10 +15,10 @@ class AbstractFAtoREConverter : public Conversion
 {
 public:
     virtual regexp::RegExp convert( ) = 0;
+    virtual ~AbstractFAtoREConverter( void );
 
 protected:
     AbstractFAtoREConverter( const automaton::FSM & automaton );
-    virtual ~AbstractFAtoREConverter( void );
 
     const automaton::FSM & m_automaton;
     regexp::RegExp m_re;
diff --git a/aconversions/src/fa2rg/AbstractFAtoRGConverter.h b/aconversions/src/fa2rg/AbstractFAtoRGConverter.h
index 4987910011..c6b632f226 100644
--- a/aconversions/src/fa2rg/AbstractFAtoRGConverter.h
+++ b/aconversions/src/fa2rg/AbstractFAtoRGConverter.h
@@ -15,10 +15,10 @@ class AbstractFAtoRGConverter : public Conversion
 {
 public:
     virtual grammar::RegularGrammar & convert( ) = 0;
+    virtual ~AbstractFAtoRGConverter( void );
 
 protected:
     AbstractFAtoRGConverter( const automaton::FSM & automaton, grammar::RegularGrammar * grammar );
-    virtual ~AbstractFAtoRGConverter( void );
     void createNonTerminalSymbols( void );
     void createTerminalSymbols( void );
 
diff --git a/aconversions/src/fa2rg/FAtoLRGConverter.cpp b/aconversions/src/fa2rg/FAtoLRGConverter.cpp
index 3c4fb47966..00dd36a536 100644
--- a/aconversions/src/fa2rg/FAtoLRGConverter.cpp
+++ b/aconversions/src/fa2rg/FAtoLRGConverter.cpp
@@ -14,6 +14,11 @@ FAtoLRGConverter::FAtoLRGConverter( const FSM & automaton ) : AbstractFAtoRGConv
 
 }
 
+FAtoLRGConverter::~FAtoLRGConverter( void )
+{
+
+}
+
 LeftRegularGrammar & FAtoLRGConverter::convert( void )
 {
     createTerminalSymbols( );
diff --git a/aconversions/src/fa2rg/FAtoLRGConverter.h b/aconversions/src/fa2rg/FAtoLRGConverter.h
index a878b782e5..328d7edd43 100644
--- a/aconversions/src/fa2rg/FAtoLRGConverter.h
+++ b/aconversions/src/fa2rg/FAtoLRGConverter.h
@@ -13,6 +13,7 @@ class FAtoLRGConverter: public AbstractFAtoRGConverter
 {
 public:
     FAtoLRGConverter( const automaton::FSM & automaton );
+    ~FAtoLRGConverter( void );
     grammar::LeftRegularGrammar & convert( );
 
 protected:
diff --git a/aconversions/src/fa2rg/FAtoRRGConverter.cpp b/aconversions/src/fa2rg/FAtoRRGConverter.cpp
index c5c52bcad8..b0f6f461b7 100644
--- a/aconversions/src/fa2rg/FAtoRRGConverter.cpp
+++ b/aconversions/src/fa2rg/FAtoRRGConverter.cpp
@@ -9,6 +9,12 @@ namespace conversions
 
 FAtoRRGConverter::FAtoRRGConverter( const FSM & automaton ) : AbstractFAtoRGConverter( automaton, new RightRegularGrammar() ), m_grammar(* dynamic_cast<RightRegularGrammar*>( m_g ))
 {
+
+}
+
+FAtoRRGConverter::~FAtoRRGConverter( void )
+{
+
 }
 
 RightRegularGrammar & FAtoRRGConverter::convert( void )
diff --git a/aconversions/src/fa2rg/FAtoRRGConverter.h b/aconversions/src/fa2rg/FAtoRRGConverter.h
index 0790af83b5..7738b8ade9 100644
--- a/aconversions/src/fa2rg/FAtoRRGConverter.h
+++ b/aconversions/src/fa2rg/FAtoRRGConverter.h
@@ -13,6 +13,7 @@ class FAtoRRGConverter : public AbstractFAtoRGConverter
 {
 public:
     FAtoRRGConverter( const automaton::FSM & automaton );
+    ~FAtoRRGConverter( void );
     grammar::RightRegularGrammar & convert ( );
 
 protected:
diff --git a/aconversions/src/re2fa/AbstractREtoFAConverter.h b/aconversions/src/re2fa/AbstractREtoFAConverter.h
index c66284b647..e7fd3b8524 100644
--- a/aconversions/src/re2fa/AbstractREtoFAConverter.h
+++ b/aconversions/src/re2fa/AbstractREtoFAConverter.h
@@ -16,10 +16,10 @@ class AbstractREtoFAConverter : public Conversion
 {
 public:
     virtual automaton::FSM convert( void ) = 0;
+    virtual ~AbstractREtoFAConverter( void );
 
 protected:
     AbstractREtoFAConverter(const regexp::RegExp & re );
-    virtual ~AbstractREtoFAConverter( void );
 
     const regexp::RegExp & m_re;
     automaton::FSM m_fsm;
diff --git a/aconversions/src/re2fa/Brzozowski.cpp b/aconversions/src/re2fa/Brzozowski.cpp
index f0f480575d..4097e9b86d 100644
--- a/aconversions/src/re2fa/Brzozowski.cpp
+++ b/aconversions/src/re2fa/Brzozowski.cpp
@@ -19,6 +19,11 @@ Brzozowski::Brzozowski( const RegExp & re ) : AbstractREtoFAConverter( re )
 
 }
 
+Brzozowski::~Brzozowski( void )
+{
+
+}
+
 FSM Brzozowski::convert( void )
 {
     RegExpOptimize opt;
diff --git a/aconversions/src/re2fa/Brzozowski.h b/aconversions/src/re2fa/Brzozowski.h
index cfe970e5fc..2baf48c254 100644
--- a/aconversions/src/re2fa/Brzozowski.h
+++ b/aconversions/src/re2fa/Brzozowski.h
@@ -31,6 +31,7 @@ class Brzozowski : public AbstractREtoFAConverter
 {
 public:
     Brzozowski( const regexp::RegExp & re );
+    ~Brzozowski( void );
     automaton::FSM convert( void );
 
 private:
diff --git a/aconversions/src/re2fa/Glushkov.cpp b/aconversions/src/re2fa/Glushkov.cpp
index b3c4e060c8..8a137ff031 100644
--- a/aconversions/src/re2fa/Glushkov.cpp
+++ b/aconversions/src/re2fa/Glushkov.cpp
@@ -21,6 +21,11 @@ Glushkov::Glushkov( const RegExp & re ) : AbstractREtoFAConverter( re )
 
 }
 
+Glushkov::~Glushkov( void )
+{
+
+}
+
 FSM Glushkov::convert( void )
 {
     // step 1
diff --git a/aconversions/src/re2fa/Glushkov.h b/aconversions/src/re2fa/Glushkov.h
index 525750b4b6..452028c1f4 100644
--- a/aconversions/src/re2fa/Glushkov.h
+++ b/aconversions/src/re2fa/Glushkov.h
@@ -31,6 +31,7 @@ class Glushkov : public AbstractREtoFAConverter
 {
 public:
     Glushkov( const regexp::RegExp & re );
+    ~Glushkov( void );
     automaton::FSM convert( void );
 
 private:
diff --git a/aconversions/src/re2fa/Thompson.cpp b/aconversions/src/re2fa/Thompson.cpp
index a8025b9f21..f5f72e3132 100644
--- a/aconversions/src/re2fa/Thompson.cpp
+++ b/aconversions/src/re2fa/Thompson.cpp
@@ -18,6 +18,12 @@ Thompson::Thompson( const RegExp & re ) : AbstractREtoFAConverter( re )
 
 }
 
+Thompson::~Thompson( void )
+{
+
+}
+
+
 FSM Thompson::convert( void )
 {
     for( const auto & symbol : RegExpAlphabet::getSymbols( m_re ) )
diff --git a/aconversions/src/re2fa/Thompson.h b/aconversions/src/re2fa/Thompson.h
index d14ca69400..8ab66196cf 100644
--- a/aconversions/src/re2fa/Thompson.h
+++ b/aconversions/src/re2fa/Thompson.h
@@ -37,6 +37,7 @@ class Thompson : public AbstractREtoFAConverter
 {
 public:
     Thompson( const regexp::RegExp & re );
+    ~Thompson( void );
     automaton::FSM convert( void );
 
 private:
diff --git a/aconversions/src/rg2fa/AbstractRGtoFAConverter.h b/aconversions/src/rg2fa/AbstractRGtoFAConverter.h
index 00b63f256c..8555e31f75 100644
--- a/aconversions/src/rg2fa/AbstractRGtoFAConverter.h
+++ b/aconversions/src/rg2fa/AbstractRGtoFAConverter.h
@@ -16,10 +16,10 @@ class AbstractRGtoFAConverter : public Conversion
 {
 public:
     virtual automaton::FSM convert( void ) = 0;
+    virtual ~AbstractRGtoFAConverter( void );
 
 protected:
     AbstractRGtoFAConverter( const grammar::RegularGrammar& grammar );
-    virtual ~AbstractRGtoFAConverter( void );
     void createStates( void );
     void createInputAlphabet( void );
 
diff --git a/aconversions/src/rg2fa/LRGtoFAConverter.cpp b/aconversions/src/rg2fa/LRGtoFAConverter.cpp
index 5dcf5a54b4..fdea21b7a2 100644
--- a/aconversions/src/rg2fa/LRGtoFAConverter.cpp
+++ b/aconversions/src/rg2fa/LRGtoFAConverter.cpp
@@ -12,6 +12,11 @@ LRGtoFAConverter::LRGtoFAConverter( const LeftRegularGrammar & grammar ) : Abstr
     //TODO: if is not LRG throw Exception
 }
 
+LRGtoFAConverter::~LRGtoFAConverter( void )
+{
+
+}
+
 FSM LRGtoFAConverter::convert( void )
 {
     createInputAlphabet( );
diff --git a/aconversions/src/rg2fa/LRGtoFAConverter.h b/aconversions/src/rg2fa/LRGtoFAConverter.h
index a27e054777..f0f9a39b9e 100644
--- a/aconversions/src/rg2fa/LRGtoFAConverter.h
+++ b/aconversions/src/rg2fa/LRGtoFAConverter.h
@@ -13,6 +13,7 @@ class LRGtoFAConverter : public AbstractRGtoFAConverter
 {
 public:
     LRGtoFAConverter( const grammar::LeftRegularGrammar & grammar );
+    ~LRGtoFAConverter( void );
     automaton::FSM convert( void );
 };
 
diff --git a/aconversions/src/rg2fa/RRGtoFAConverter.cpp b/aconversions/src/rg2fa/RRGtoFAConverter.cpp
index 67fa9cfad8..ffe18ba402 100644
--- a/aconversions/src/rg2fa/RRGtoFAConverter.cpp
+++ b/aconversions/src/rg2fa/RRGtoFAConverter.cpp
@@ -12,6 +12,12 @@ RRGtoFAConverter::RRGtoFAConverter( const RightRegularGrammar & grammar ) : Abst
     //TODO: if is not RRG throw Exception
 }
 
+RRGtoFAConverter::~RRGtoFAConverter( void )
+{
+
+}
+
+
 FSM RRGtoFAConverter::convert( void )
 {
     createInputAlphabet( );
diff --git a/aconversions/src/rg2fa/RRGtoFAConverter.h b/aconversions/src/rg2fa/RRGtoFAConverter.h
index da057899d7..f8230cbe83 100644
--- a/aconversions/src/rg2fa/RRGtoFAConverter.h
+++ b/aconversions/src/rg2fa/RRGtoFAConverter.h
@@ -13,6 +13,7 @@ class RRGtoFAConverter : public AbstractRGtoFAConverter
 {
 public:
     RRGtoFAConverter( const grammar::RightRegularGrammar & grammar );
+    ~RRGtoFAConverter( void );
     automaton::FSM convert( void );
 };
 
-- 
GitLab