From: Justin Viiret Date: Mon, 4 Jan 2016 02:46:51 +0000 (+1100) Subject: roseCatchUpLeftfixes: iter state on stack X-Git-Tag: v4.2.0^2~198 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2abc038f1cb5f4449795e541153f601dbc78a462;p=thirdparty%2Fvectorscan.git roseCatchUpLeftfixes: iter state on stack --- diff --git a/src/rose/stream.c b/src/rose/stream.c index 4096c356..ab23346a 100644 --- a/src/rose/stream.c +++ b/src/rose/stream.c @@ -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,