diff --git a/alib2algo/src/regexp/transform/RegExpDerivation.cpp b/alib2algo/src/regexp/transform/RegExpDerivation.cpp index 6028c36df7d05a938feb8e4099a5b5a86d10018b..272eae1bc754bd2981b4929a95077b789557a004 100644 --- a/alib2algo/src/regexp/transform/RegExpDerivation.cpp +++ b/alib2algo/src/regexp/transform/RegExpDerivation.cpp @@ -91,7 +91,7 @@ std::unique_ptr < regexp::UnboundedRegExpElement < alphabet::Symbol > > RegExpDe for(const auto& child : alternation.getElements()) ret->appendElement( * ( child->accept<std::unique_ptr < regexp::UnboundedRegExpElement < alphabet::Symbol > >, regexp::RegExpDerivation::Unbounded > ( argument ) ) ); - return ret; + return std::unique_ptr < regexp::UnboundedRegExpElement < alphabet::Symbol > > ( std::move ( ret ) ); } std::unique_ptr < regexp::UnboundedRegExpElement < alphabet::Symbol > > RegExpDerivation::Unbounded::visit(const regexp::UnboundedRegExpConcatenation < alphabet::Symbol > & concatenation, const alphabet::Symbol& argument) { @@ -111,14 +111,14 @@ std::unique_ptr < regexp::UnboundedRegExpElement < alphabet::Symbol > > RegExpDe break; } - return ret; + return std::unique_ptr < regexp::UnboundedRegExpElement < alphabet::Symbol > > ( std::move ( ret ) ); } std::unique_ptr < regexp::UnboundedRegExpElement < alphabet::Symbol > > RegExpDerivation::Unbounded::visit(const regexp::UnboundedRegExpIteration < alphabet::Symbol > & iteration, const alphabet::Symbol& argument) { - UnboundedRegExpConcatenation < alphabet::Symbol > * con = new regexp::UnboundedRegExpConcatenation < alphabet::Symbol > ( ); + std::unique_ptr < UnboundedRegExpConcatenation < alphabet::Symbol > > con ( new regexp::UnboundedRegExpConcatenation < alphabet::Symbol > ( ) ); con->appendElement ( * ( iteration.getElement().accept<std::unique_ptr < regexp::UnboundedRegExpElement < alphabet::Symbol > >, regexp::RegExpDerivation::Unbounded > ( argument ) ) ); con->appendElement ( iteration ); - return std::unique_ptr < UnboundedRegExpElement < alphabet::Symbol > > ( con ); + return std::unique_ptr < UnboundedRegExpElement < alphabet::Symbol > > ( std::move ( con ) ); } std::unique_ptr < regexp::UnboundedRegExpElement < alphabet::Symbol > > RegExpDerivation::Unbounded::visit(const regexp::UnboundedRegExpSymbol < alphabet::Symbol > & symbol, const alphabet::Symbol& argument) {