]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
regex - try to fix compilation for precise (pcre)
authorJaroslav Kysela <perex@perex.cz>
Wed, 17 May 2017 12:42:13 +0000 (14:42 +0200)
committerJaroslav Kysela <perex@perex.cz>
Wed, 17 May 2017 12:42:13 +0000 (14:42 +0200)
src/tvhregex.h
src/wrappers.c

index 60ca72eb72810865e8f3b5729ed7a39b05116855..72b941456f235094cfd2a0fd6942736005a4ae19 100644 (file)
@@ -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;
index d850505fcae40ff0976a199b69c74910af13b49d..c3e5afec90931faa9ab79b1e75fe81c77811bfcd 100644 (file)
@@ -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;
     }
   }