void
lcra_free(struct lcra_state *l)
{
+ if (!l)
+ return;
+
free(l->alignment);
free(l->linear);
free(l->modulus);
void
lcra_restrict_range(struct lcra_state *l, unsigned node, unsigned len)
{
- if (l->alignment[node])
+ if (node < l->node_count && l->alignment[node])
l->modulus[node] = DIV_ROUND_UP(l->bound - len + 1, 1 << (l->alignment[node] - 1));
}