]> git.ipfire.org Git - thirdparty/vectorscan.git/commitdiff
remove code preventing firing callbacks in the history buffer
authorAlex Coyte <a.coyte@intel.com>
Wed, 31 Aug 2016 23:55:53 +0000 (09:55 +1000)
committerMatthew Barr <matthew.barr@intel.com>
Fri, 28 Oct 2016 03:46:34 +0000 (14:46 +1100)
src/nfa/gough.c
src/nfa/mcclellan.c
src/nfa/sheng.c

index 520aca932d7417db302ca6d10f3b733b63ec063a..44acd4c28652fffb03cc9bd11766f1ea4bc56488 100644 (file)
@@ -655,12 +655,6 @@ char nfaExecGough8_Q2i(const struct NFA *n, u64a offset, const u8 *buffer,
 
     const u8 *cur_buf = sp < 0 ? hend : buffer;
 
-    char report = 1;
-    if (mode == CALLBACK_OUTPUT) {
-        /* we are starting inside the history buffer: matches are suppressed */
-        report = !(sp < 0);
-    }
-
     if (mode != NO_MATCHES && q->items[q->cur - 1].location > end) {
         /* this is as far as we go */
         q->cur--;
@@ -691,8 +685,7 @@ char nfaExecGough8_Q2i(const struct NFA *n, u64a offset, const u8 *buffer,
 
         const u8 *final_look;
         if (goughExec8_i_ni(m, som, &s, cur_buf + sp, local_ep - sp,
-                            offset + sp, cb, context, &final_look,
-                            report ? mode : NO_MATCHES)
+                            offset + sp, cb, context, &final_look, mode)
             == MO_HALT_MATCHING) {
             *(u8 *)q->state = 0;
             return 0;
@@ -724,7 +717,6 @@ char nfaExecGough8_Q2i(const struct NFA *n, u64a offset, const u8 *buffer,
 
         if (sp == 0) {
             cur_buf = buffer;
-            report = 1;
         }
 
         if (sp != ep) {
@@ -789,12 +781,6 @@ char nfaExecGough16_Q2i(const struct NFA *n, u64a offset, const u8 *buffer,
 
     const u8 *cur_buf = sp < 0 ? hend : buffer;
 
-    char report = 1;
-    if (mode == CALLBACK_OUTPUT) {
-        /* we are starting inside the history buffer: matches are suppressed */
-        report = !(sp < 0);
-    }
-
     assert(q->cur);
     if (mode != NO_MATCHES && q->items[q->cur - 1].location > end) {
         /* this is as far as we go */
@@ -822,10 +808,8 @@ char nfaExecGough16_Q2i(const struct NFA *n, u64a offset, const u8 *buffer,
         /* do main buffer region */
         const u8 *final_look;
         if (goughExec16_i_ni(m, som, &s, cur_buf + sp, local_ep - sp,
-                             offset + sp, cb, context, &final_look,
-                             report ? mode : NO_MATCHES)
+                             offset + sp, cb, context, &final_look, mode)
             == MO_HALT_MATCHING) {
-            assert(report);
             *(u16 *)q->state = 0;
             return 0;
         }
@@ -856,7 +840,6 @@ char nfaExecGough16_Q2i(const struct NFA *n, u64a offset, const u8 *buffer,
 
         if (sp == 0) {
             cur_buf = buffer;
-            report = 1;
         }
 
         if (sp != ep) {
index 88da27c0ff2a05f1d2fbece2eeb1fa1b4f1ba1b8..992f78e292961542c268d5b0627acfb7c2783a0f 100644 (file)
@@ -496,12 +496,6 @@ char nfaExecMcClellan16_Q2i(const struct NFA *n, u64a offset, const u8 *buffer,
 
     const u8 *cur_buf = sp < 0 ? hend : buffer;
 
-    char report = 1;
-    if (mode == CALLBACK_OUTPUT) {
-        /* we are starting inside the history buffer: matches are suppressed */
-        report = !(sp < 0);
-    }
-
     assert(q->cur);
     if (mode != NO_MATCHES && q->items[q->cur - 1].location > end) {
         DEBUG_PRINTF("this is as far as we go\n");
@@ -530,9 +524,8 @@ char nfaExecMcClellan16_Q2i(const struct NFA *n, u64a offset, const u8 *buffer,
         const u8 *final_look;
         if (mcclellanExec16_i_ni(m, &s, cur_buf + sp, local_ep - sp,
                                  offset + sp, cb, context, single, &final_look,
-                                 report ? mode : NO_MATCHES)
+                                 mode)
             == MO_HALT_MATCHING) {
-            assert(report);
             *(u16 *)q->state = 0;
             return 0;
         }
@@ -563,7 +556,6 @@ char nfaExecMcClellan16_Q2i(const struct NFA *n, u64a offset, const u8 *buffer,
 
         if (sp == 0) {
             cur_buf = buffer;
-            report = 1;
         }
 
         if (sp != ep) {
@@ -653,12 +645,6 @@ char nfaExecMcClellan8_Q2i(const struct NFA *n, u64a offset, const u8 *buffer,
 
     const u8 *cur_buf = sp < 0 ? hend : buffer;
 
-    char report = 1;
-    if (mode == CALLBACK_OUTPUT) {
-        /* we are starting inside the history buffer: matches are suppressed */
-        report = !(sp < 0);
-    }
-
     if (mode != NO_MATCHES && q->items[q->cur - 1].location > end) {
         DEBUG_PRINTF("this is as far as we go\n");
         q->cur--;
@@ -687,8 +673,7 @@ char nfaExecMcClellan8_Q2i(const struct NFA *n, u64a offset, const u8 *buffer,
 
         const u8 *final_look;
         if (mcclellanExec8_i_ni(m, &s, cur_buf + sp, local_ep - sp, offset + sp,
-                                cb, context, single, &final_look,
-                                report ? mode : NO_MATCHES)
+                                cb, context, single, &final_look, mode)
             == MO_HALT_MATCHING) {
             *(u8 *)q->state = 0;
             return 0;
@@ -720,7 +705,6 @@ char nfaExecMcClellan8_Q2i(const struct NFA *n, u64a offset, const u8 *buffer,
 
         if (sp == 0) {
             cur_buf = buffer;
-            report = 1;
         }
 
         if (sp != ep) {
index bbbf1f2072573963083860447b4557f28909e79d..a5f9680500ac9dc64fc2c4068382ea538bfce078 100644 (file)
@@ -405,9 +405,7 @@ char runSheng(const struct sheng *sh, struct mq *q, s64a b_end,
             const u8 * scanned = cur_buf;
             char rv;
 
-            /* if we're in nomatch mode or if we're scanning history buffer */
-            if (mode == NO_MATCHES ||
-                (cur_start < 0 && mode == CALLBACK_OUTPUT)) {
+            if (mode == NO_MATCHES) {
                 runShengNm(sh, q->cb, q->context, q->offset,
                            &cached_accept_state, &cached_accept_id, cur_buf,
                            cur_buf + cur_start, cur_buf + cur_end, can_die,