From cf5055f68b8ac049c8ec42e37ee71f9d7841fcd2 Mon Sep 17 00:00:00 2001 From: Maxime Coste Date: Wed, 4 Oct 2017 11:28:58 +0800 Subject: [PATCH] Regex: small code tweak --- src/regex_impl.hh | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/regex_impl.hh b/src/regex_impl.hh index 8b98ef21..4d073473 100644 --- a/src/regex_impl.hh +++ b/src/regex_impl.hh @@ -270,7 +270,7 @@ struct ThreadedRegexVM const bool search = (flags & RegexExecFlags::Search); - const auto start_offset = search ? 0 : CompiledRegex::search_prefix_size; + const auto start_offset = search ? 0 : CompiledRegex::search_prefix_size; Vector current_threads{Thread{m_program.bytecode.data() + start_offset, initial_saves}}; Vector next_threads; for (m_pos = Utf8It{m_begin, m_begin, m_end}; m_pos != m_end; ++m_pos) @@ -282,16 +282,14 @@ struct ThreadedRegexVM switch (step(thread, current_threads)) { case StepResult::Matched: - if (not (flags & RegexExecFlags::Search) or // We are not at end, this is not a full match + if (not search or // We are not at end, this is not a full match (flags & RegexExecFlags::NotInitialNull and m_pos == m_begin)) { release_saves(thread.saves); continue; } - if (thread.saves) - m_captures = thread.saves; - + m_captures = thread.saves; if (flags & RegexExecFlags::AnyMatch) return true; @@ -325,8 +323,7 @@ struct ThreadedRegexVM current_threads.pop_back(); if (step(thread, current_threads) == StepResult::Matched) { - if (thread.saves) - m_captures = thread.saves; + m_captures = thread.saves; return true; } }