Ensure the queue structure is initialised in roseEnginesEod().

This commit is contained in:
Alex Coyte 2017-02-24 15:40:39 +11:00 committed by Matthew Barr
parent f4c2fc3b9b
commit f9324febde

View File

@ -1209,6 +1209,8 @@ hwlmcb_rv_t roseEnginesEod(const struct RoseEngine *rose,
const u8 *aa = getActiveLeafArray(rose, scratch->core_info.state); const u8 *aa = getActiveLeafArray(rose, scratch->core_info.state);
const u32 aaCount = rose->activeArrayCount; const u32 aaCount = rose->activeArrayCount;
const u32 qCount = rose->queueCount;
struct fatbit *aqa = scratch->aqa;
const struct mmbit_sparse_iter *it = getByOffset(rose, iter_offset); const struct mmbit_sparse_iter *it = getByOffset(rose, iter_offset);
assert(ISALIGNED(it)); assert(ISALIGNED(it));
@ -1221,6 +1223,10 @@ hwlmcb_rv_t roseEnginesEod(const struct RoseEngine *rose,
qi = mmbit_sparse_iter_next(aa, aaCount, qi, &idx, it, si_state)) { qi = mmbit_sparse_iter_next(aa, aaCount, qi, &idx, it, si_state)) {
DEBUG_PRINTF("checking nfa %u\n", qi); DEBUG_PRINTF("checking nfa %u\n", qi);
struct mq *q = scratch->queues + qi; struct mq *q = scratch->queues + qi;
if (!fatbit_set(aqa, qCount, qi)) {
initQueue(q, qi, rose, scratch);
}
assert(q->nfa == getNfaByQueue(rose, qi)); assert(q->nfa == getNfaByQueue(rose, qi));
assert(nfaAcceptsEod(q->nfa)); assert(nfaAcceptsEod(q->nfa));