*
* \param mpm_ctx Pointer to the mpm context.
*/
-static inline void SCACPrepareStateTable(MpmCtx *mpm_ctx)
+static void SCACPrepareStateTable(MpmCtx *mpm_ctx)
{
SCACCtx *ctx = (SCACCtx *)mpm_ctx->ctx;
mpm_ctx->memory_cnt--;
mpm_ctx->memory_size -= (mpm_ctx->pattern_cnt * sizeof(SCACPattern *));
+ ctx->pattern_id_bitarray_size = (ctx->max_pat_id / 8) + 1;
+
return 0;
error:
/* \todo Change it for stateful MPM. Supply the state using mpm_thread_ctx */
SCACPatternList *pid_pat_list = ctx->pid_pat_list;
- uint8_t bitarray[pmq->pattern_id_bitarray_size];
- memset(bitarray, 0, pmq->pattern_id_bitarray_size);
+ uint8_t bitarray[ctx->pattern_id_bitarray_size];
+ memset(bitarray, 0, ctx->pattern_id_bitarray_size);
if (ctx->state_count < 32767) {
register SC_AC_STATE_TYPE_U16 state = 0;
/* no of states used by ac */
uint32_t state_count;
+
+ uint32_t pattern_id_bitarray_size;
+
/* the all important memory hungry state_table */
SC_AC_STATE_TYPE_U16 (*state_table_u16)[256];
/* the all important memory hungry state_table */