diff --git a/base/levenshtein_dfa.cpp b/base/levenshtein_dfa.cpp index 5554a21d7f..09587116b2 100644 --- a/base/levenshtein_dfa.cpp +++ b/base/levenshtein_dfa.cpp @@ -143,8 +143,10 @@ bool LevenshteinDFA::Position::operator==(Position const & rhs) const // LevenshteinDFA::State --------------------------------------------------------------------------- void LevenshteinDFA::State::Normalize() { + size_t i = 0; size_t j = m_positions.size(); - for (size_t i = 0; i < j; ++i) + + while (i < j) { auto const & cur = m_positions[i]; @@ -156,6 +158,10 @@ void LevenshteinDFA::State::Normalize() --j; std::swap(m_positions[i], m_positions[j]); } + else + { + ++i; + } } m_positions.erase(m_positions.begin() + j, m_positions.end());