From d63fdcd860713243489317bed54e2d7e2e7afb51 Mon Sep 17 00:00:00 2001 From: Justin Viiret Date: Wed, 15 Mar 2017 09:37:21 +1100 Subject: [PATCH] ng_region: simplify checkAndAddExitCandidate --- src/nfagraph/ng_region.cpp | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/nfagraph/ng_region.cpp b/src/nfagraph/ng_region.cpp index 8adecfcf..39a8a504 100644 --- a/src/nfagraph/ng_region.cpp +++ b/src/nfagraph/ng_region.cpp @@ -87,22 +87,19 @@ static void checkAndAddExitCandidate(const AcyclicGraph &g, const ue2::unordered_set &r, NFAVertex v, vector &exits) { - // set when we find our first candidate. - decltype(exit_info::open) *open = nullptr; + exit_info v_exit(v); + auto &open = v_exit.open; /* find the set of vertices reachable from v which are not in r */ for (auto w : adjacent_vertices_range(v, g)) { - if (!contains(r, NFAVertex(w))) { - if (!open) { - exits.emplace_back(NFAVertex(v)); - open = &exits.back().open; - } - open->insert(NFAVertex(w)); + if (!contains(r, w)) { + open.insert(w); } } - if (open) { + if (!open.empty()) { DEBUG_PRINTF("exit %zu\n", g[v].index); + exits.push_back(move(v_exit)); } }