From: Justin Viiret Date: Tue, 11 Oct 2016 22:53:12 +0000 (+1100) Subject: ng_limex: add edges in deterministic ordering X-Git-Tag: v4.4.0^2~55 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=21a1b47637f064515240188d351f54347fa188fa;p=thirdparty%2Fvectorscan.git ng_limex: add edges in deterministic ordering --- diff --git a/src/nfagraph/ng_limex.cpp b/src/nfagraph/ng_limex.cpp index 5f782460..5e5a18d9 100644 --- a/src/nfagraph/ng_limex.cpp +++ b/src/nfagraph/ng_limex.cpp @@ -177,7 +177,12 @@ NFAVertex makeTopStartVertex(NGHolder &g, const flat_set &tops, NFAVertex u = add_vertex(g[g.start], g); CharReach top_cr = calcTopVertexReach(tops, top_reach); g[u].char_reach = top_cr; - for (auto v : succs) { + + // Add edges in vertex index order, for determinism. + vector ordered_succs(begin(succs), end(succs)); + sort(begin(ordered_succs), end(ordered_succs), make_index_ordering(g)); + + for (auto v : ordered_succs) { if (v == g.accept || v == g.acceptEod) { reporter = true; }