]> git.ipfire.org Git - thirdparty/vectorscan.git/commitdiff
roseCatchUpLeftfixes: iter state on stack
authorJustin Viiret <justin.viiret@intel.com>
Mon, 4 Jan 2016 02:46:51 +0000 (13:46 +1100)
committerMatthew Barr <matthew.barr@intel.com>
Tue, 1 Mar 2016 00:20:36 +0000 (11:20 +1100)
src/rose/stream.c

index 4096c3564e0b3a5fee1e3c0e056898fbb857be7e..ab23346a40a2733f050dd62177927ad3d3110ffc 100644 (file)
@@ -342,12 +342,13 @@ void roseCatchUpLeftfixes(const struct RoseEngine *t, u8 *state,
     const u32 arCount = t->activeLeftCount;
     const struct LeftNfaInfo *left_table = getLeftTable(t);
     const struct mmbit_sparse_iter *it = getActiveLeftIter(t);
-    struct mmbit_sparse_state *s = scratch->sparse_iter_state;
+
+    struct mmbit_sparse_state si_state[MAX_SPARSE_ITER_STATES];
 
     u32 idx = 0;
-    u32 ri = mmbit_sparse_iter_begin(ara, arCount, &idx, it, s);
+    u32 ri = mmbit_sparse_iter_begin(ara, arCount, &idx, it, si_state);
     for (; ri != MMB_INVALID;
-           ri = mmbit_sparse_iter_next(ara, arCount, ri, &idx, it, s)) {
+           ri = mmbit_sparse_iter_next(ara, arCount, ri, &idx, it, si_state)) {
         const struct LeftNfaInfo *left = left_table + ri;
         u32 qi = ri + t->leftfixBeginQueue;
         DEBUG_PRINTF("leftfix %u of %u, maxLag=%u, infix=%d\n", ri, arCount,