struct pattern_list *pat, *tmp;
list_for_each_entry_safe(pat, tmp, &expr->patterns, list) {
+ LIST_DEL(&pat->list);
free(pat->pat.data);
free(pat);
}
free_pattern_tree(&expr->pattern_tree);
free_pattern_tree(&expr->pattern_tree_2);
LIST_INIT(&expr->patterns);
+ expr->revision = rdtsc();
}
void pat_prune_ptr(struct pattern_expr *expr)
struct pattern_list *pat, *tmp;
list_for_each_entry_safe(pat, tmp, &expr->patterns, list) {
+ LIST_DEL(&pat->list);
free(pat->pat.ptr.ptr);
free(pat->pat.data);
free(pat);
free_pattern_tree(&expr->pattern_tree);
free_pattern_tree(&expr->pattern_tree_2);
LIST_INIT(&expr->patterns);
+ expr->revision = rdtsc();
}
void pat_prune_reg(struct pattern_expr *expr)
struct pattern_list *pat, *tmp;
list_for_each_entry_safe(pat, tmp, &expr->patterns, list) {
+ LIST_DEL(&pat->list);
regex_free(pat->pat.ptr.ptr);
free(pat->pat.data);
free(pat);
free_pattern_tree(&expr->pattern_tree);
free_pattern_tree(&expr->pattern_tree_2);
LIST_INIT(&expr->patterns);
+ expr->revision = rdtsc();
}
/*