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