From: Jaroslav Kysela Date: Wed, 17 May 2017 12:42:13 +0000 (+0200) Subject: regex - try to fix compilation for precise (pcre) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=18ef8d829e345f2693fe6da0480b528c3d78500e;p=thirdparty%2Ftvheadend.git regex - try to fix compilation for precise (pcre) --- diff --git a/src/tvhregex.h b/src/tvhregex.h index 60ca72eb7..72b941456 100644 --- a/src/tvhregex.h +++ b/src/tvhregex.h @@ -41,7 +41,9 @@ typedef struct { #if ENABLE_PCRE pcre *re_code; pcre_extra *re_extra; +#if PCRE_STUDY_JIT_COMPILE pcre_jit_stack *re_jit_stack; +#endif #elif ENABLE_PCRE2 pcre2_code *re_code; pcre2_match_data *re_match; diff --git a/src/wrappers.c b/src/wrappers.c index d850505fc..c3e5afec9 100644 --- a/src/wrappers.c +++ b/src/wrappers.c @@ -390,8 +390,11 @@ tvh_qsort_r(void *base, size_t nmemb, size_t size, int (*compar)(const void *, c void regex_free(tvh_regex_t *regex) { #if ENABLE_PCRE - pcre_jit_stack_free(regex->re_jit_stack); #ifdef PCRE_CONFIG_JIT +#if PCRE_STUDY_JIT_COMPILE + pcre_jit_stack_free(regex->re_jit_stack); + regex->re_jit_stack = NULL; +#endif pcre_free_study(regex->re_extra); #else pcre_free(regex->re_extra); @@ -399,7 +402,6 @@ void regex_free(tvh_regex_t *regex) pcre_free(regex->re_code); regex->re_extra = NULL; regex->re_code = NULL; - regex->re_jit_stack = NULL; #elif ENABLE_PCRE2 pcre2_jit_stack_free(regex->re_jit_stack); pcre2_match_data_free(regex->re_match); @@ -429,9 +431,11 @@ int regex_compile(tvh_regex_t *regex, const char *re_str, int subsys) if (regex->re_extra == NULL && estr) tvherror(subsys, "Unable to study PCRE '%s': %s", re_str, estr); else { +#if PCRE_STUDY_JIT_COMPILE regex->re_jit_stack = pcre_jit_stack_alloc(32*1024, 512*1024); if (regex->re_jit_stack) pcre_assign_jit_stack(regex->re_extra, NULL, regex->re_jit_stack); +#endif return 0; } }