diff --git a/alib2algo/src/automaton/determinize/DeterminizeRHDPDAPart.cxx b/alib2algo/src/automaton/determinize/DeterminizeRHDPDAPart.cxx index 4e6a54c1dba19a0142a9826612b56256f2fcb97c..08d9208f674156f04325d60a1d6c1635ca28abc6 100644 --- a/alib2algo/src/automaton/determinize/DeterminizeRHDPDAPart.cxx +++ b/alib2algo/src/automaton/determinize/DeterminizeRHDPDAPart.cxx @@ -205,7 +205,7 @@ std::tuple<std::set<std::variant<string::Epsilon, alphabet::Symbol>>, std::set<s ret.insert(std::get<1>(transition.first)); } - return std::make_tuple(local, call, ret); + return std::make_tuple(std::move(local), std::move(call), std::move(ret)); } automaton::RealTimeHeightDeterministicDPDA Determinize::determinize(const automaton::RealTimeHeightDeterministicNPDA& n) { diff --git a/alib2algo/src/automaton/determinize/common/RHDPDACommon.cpp b/alib2algo/src/automaton/determinize/common/RHDPDACommon.cpp index dffadfeddcbe6759f28506fa3a24cf5b93105042..85812d6a6da1e6ae10478a22969eb9bb71f09b50 100644 --- a/alib2algo/src/automaton/determinize/common/RHDPDACommon.cpp +++ b/alib2algo/src/automaton/determinize/common/RHDPDACommon.cpp @@ -197,22 +197,20 @@ std::set<std::pair<automaton::State, alphabet::Symbol>> existsDirtyStateSymbol(c for(const automaton::State& state : states) { const label::Label& stateLabel = state.getName(); - std::set<label::Label> lc { stateLabel }; - localClosure(lc, std::set<label::Label>{stateLabel}, d); //intentional copy - bool originalPops = false; - for(const label::Label& localState : lc) { - const std::set<label::Label> dSubSet = retrieveDSubSet(unpackFromStateLabel(localState)); + const std::set<label::Label> dSubSet = retrieveDSubSet(unpackFromStateLabel(stateLabel)); - for(const auto& transition : n.getReturnTransitions()) { - if(dSubSet.count(std::get<0>(transition.first).getName())) { - originalPops = true; - goto break2; - } + for(const auto& transition : n.getReturnTransitions()) { + if(dSubSet.count(std::get<0>(transition.first).getName())) { + originalPops = true; + goto break2; } } break2: if(!originalPops) continue; + std::set<label::Label> lc { stateLabel }; + localClosure(lc, std::set<label::Label>{stateLabel}, d); //intentional copy + std::set<alphabet::Symbol> topSymbols; for(const label::Label& localState : lc) { for(const auto& transition : callTransitions) {