From: Justin Viiret Date: Thu, 6 Apr 2017 01:43:56 +0000 (+1000) Subject: find_better_daddy: use flat_set for hinted states X-Git-Tag: v4.5.0^2~80 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=40f03929be10e0d6b99ad553f03a7181df8bf3d3;p=thirdparty%2Fvectorscan.git find_better_daddy: use flat_set for hinted states --- diff --git a/src/nfa/mcclellancompile.cpp b/src/nfa/mcclellancompile.cpp index 206f468a..0aff6006 100644 --- a/src/nfa/mcclellancompile.cpp +++ b/src/nfa/mcclellancompile.cpp @@ -762,7 +762,7 @@ bytecode_ptr mcclellanCompile8(dfa_info &info, const CompileContext &cc, #define MAX_SHERMAN_LIST_LEN 8 static -void addIfEarlier(set &dest, dstate_id_t candidate, +void addIfEarlier(flat_set &dest, dstate_id_t candidate, dstate_id_t max) { if (candidate < max) { dest.insert(candidate); @@ -770,7 +770,7 @@ void addIfEarlier(set &dest, dstate_id_t candidate, } static -void addSuccessors(set &dest, const dstate &source, +void addSuccessors(flat_set &dest, const dstate &source, u16 alphasize, dstate_id_t curr_id) { for (symbol_t s = 0; s < alphasize; s++) { addIfEarlier(dest, source.next[s], curr_id); @@ -817,7 +817,7 @@ void find_better_daddy(dfa_info &info, dstate_id_t curr_id, dstate_id_t best_daddy = 0; dstate &currState = info.states[curr_id]; - set hinted; /* set of states to search for a better daddy */ + flat_set hinted; /* states to search for a better daddy */ addIfEarlier(hinted, 0, curr_id); addIfEarlier(hinted, info.raw.start_anchored, curr_id); addIfEarlier(hinted, info.raw.start_floating, curr_id);