| 1332 |
study->flags |= PCRE_STUDY_MAPPED; |
study->flags |= PCRE_STUDY_MAPPED; |
| 1333 |
memcpy(study->start_bits, start_bits, sizeof(start_bits)); |
memcpy(study->start_bits, start_bits, sizeof(start_bits)); |
| 1334 |
} |
} |
| 1335 |
|
|
| 1336 |
if (min > 0) |
/* Always set the minlength value in the block, because the JIT compiler |
| 1337 |
{ |
makes use of it. However, don't set the bit unless the length is greater than |
| 1338 |
study->flags |= PCRE_STUDY_MINLEN; |
zero - the interpretive pcre_exec() and pcre_dfa_exec() needn't waste time |
| 1339 |
study->minlength = min; |
checking this case. */ |
| 1340 |
} |
|
| 1341 |
|
study->minlength = min; |
| 1342 |
|
if (min > 0) study->flags |= PCRE_STUDY_MINLEN; |
| 1343 |
|
|
| 1344 |
/* If JIT support was compiled and requested, attempt the JIT compilation. |
/* If JIT support was compiled and requested, attempt the JIT compilation. |
| 1345 |
If no starting bytes were found, and the minimum length is zero, and JIT |
If no starting bytes were found, and the minimum length is zero, and JIT |
| 1346 |
compilation fails, no flags will be set, so abandon the extra block and |
compilation fails, abandon the extra block and return NULL. */ |
|
return NULL. */ |
|
| 1347 |
|
|
| 1348 |
#ifdef SUPPORT_JIT |
#ifdef SUPPORT_JIT |
| 1349 |
extra->executable_jit = NULL; |
extra->executable_jit = NULL; |
| 1350 |
if ((options & PCRE_STUDY_JIT_COMPILE) != 0) _pcre_jit_compile(re, extra); |
if ((options & PCRE_STUDY_JIT_COMPILE) != 0) _pcre_jit_compile(re, extra); |
| 1351 |
if (study->flags == 0) |
if (study->flags == 0 && (extra->flags & PCRE_EXTRA_EXECUTABLE_JIT) == 0) |
| 1352 |
{ |
{ |
| 1353 |
pcre_free_study(extra); |
pcre_free_study(extra); |
| 1354 |
extra = NULL; |
extra = NULL; |