/********************************************************************* * * Function : free_pattern_spec * * Description : Called from the "unloaders". Freez the pattern * structure elements. * * Parameters : * 1 : pattern = pointer to a pattern_spec structure. * * Returns : N/A * *********************************************************************/ void free_pattern_spec(struct pattern_spec *pattern) { if (pattern == NULL) return; freez(pattern->spec); #ifdef FEATURE_EXTENDED_HOST_PATTERNS if (pattern->pattern.url_spec.host_regex) { regfree(pattern->pattern.url_spec.host_regex); freez(pattern->pattern.url_spec.host_regex); } #else freez(pattern->pattern.url_spec.dbuffer); freez(pattern->pattern.url_spec.dvec); pattern->pattern.url_spec.dcount = 0; #endif /* ndef FEATURE_EXTENDED_HOST_PATTERNS */ freez(pattern->pattern.url_spec.port_list); if (pattern->pattern.url_spec.preg) { pcre_regfree(pattern->pattern.url_spec.preg); freez(pattern->pattern.url_spec.preg); } if (pattern->pattern.tag_regex) { pcre_regfree(pattern->pattern.tag_regex); freez(pattern->pattern.tag_regex); } }
static void RegExp_Free(KonohaContext *kctx, kObject *o) { kRegExp *re = (kRegExp *)o; if(re->reg != NULL) { pcre_regfree(kctx, re->reg); } }