roseCheckNfaEod: use sparse iterator for EOD

Rather than checking all active outfix/suffix engines, use a sparse
iterator to check only those engines that accept at EOD.
This commit is contained in:
Justin Viiret
2015-12-23 15:12:28 +11:00
committed by Matthew Barr
parent 04dfed2602
commit b2a76e6e2b
4 changed files with 51 additions and 11 deletions

View File

@@ -428,6 +428,9 @@ struct RoseEngine {
u32 eodIterProgramOffset; // or 0 if no eod iterator program
u32 eodIterOffset; // offset to EOD sparse iter or 0 if none
/** \brief Offset to sparse iter over outfix/suffix NFAs that accept EOD. */
u32 eodNfaIterOffset;
u32 lastByteHistoryIterOffset; // if non-zero
/** \brief Minimum number of bytes required to match. */