From: Hong, Yang A Date: Thu, 4 Mar 2021 17:00:34 +0000 (+0000) Subject: mcclellan: improve wide-state checking in Sherman optimization X-Git-Tag: vectorscan/5.4.8~1^2~3^2~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a119693a66504e671b73b6e96ef2bd9760647536;p=thirdparty%2Fvectorscan.git mcclellan: improve wide-state checking in Sherman optimization fixes github issue #305 --- diff --git a/src/nfa/mcclellancompile.cpp b/src/nfa/mcclellancompile.cpp index b5c3a8ac..aa04e470 100644 --- a/src/nfa/mcclellancompile.cpp +++ b/src/nfa/mcclellancompile.cpp @@ -1081,7 +1081,9 @@ void find_better_daddy(dfa_info &info, dstate_id_t curr_id, bool using8bit, // Use the daddy already set for this state so long as it isn't already // a Sherman state. dstate_id_t daddy = currState.daddy; - if (!info.is_sherman(daddy) && !info.is_widestate(daddy)) { + if (info.is_widestate(daddy)) { + return; + } else if (!info.is_sherman(daddy)) { hinted.insert(currState.daddy); } else { // Fall back to granddaddy, which has already been processed (due