6287 |
|
|
6288 |
#ifdef SUPPORT_JIT |
#ifdef SUPPORT_JIT |
6289 |
if (extra_data != NULL |
if (extra_data != NULL |
6290 |
&& (extra_data->flags & PCRE_EXTRA_EXECUTABLE_JIT) != 0 |
&& (extra_data->flags & (PCRE_EXTRA_EXECUTABLE_JIT | |
6291 |
|
PCRE_EXTRA_TABLES)) == PCRE_EXTRA_EXECUTABLE_JIT |
6292 |
&& extra_data->executable_jit != NULL |
&& extra_data->executable_jit != NULL |
|
&& (extra_data->flags & PCRE_EXTRA_TABLES) == 0 |
|
6293 |
&& (options & ~(PCRE_NO_UTF8_CHECK | PCRE_NOTBOL | PCRE_NOTEOL | |
&& (options & ~(PCRE_NO_UTF8_CHECK | PCRE_NOTBOL | PCRE_NOTEOL | |
6294 |
PCRE_NOTEMPTY | PCRE_NOTEMPTY_ATSTART)) == 0) |
PCRE_NOTEMPTY | PCRE_NOTEMPTY_ATSTART | |
6295 |
return PRIV(jit_exec)(re, extra_data->executable_jit, |
PCRE_PARTIAL_SOFT | PCRE_PARTIAL_HARD)) == 0) |
6296 |
|
{ |
6297 |
|
rc = PRIV(jit_exec)(re, extra_data->executable_jit, |
6298 |
(const pcre_uchar *)subject, length, start_offset, options, |
(const pcre_uchar *)subject, length, start_offset, options, |
6299 |
((extra_data->flags & PCRE_EXTRA_MATCH_LIMIT) == 0) |
((extra_data->flags & PCRE_EXTRA_MATCH_LIMIT) == 0) |
6300 |
? MATCH_LIMIT : extra_data->match_limit, offsets, offsetcount); |
? MATCH_LIMIT : extra_data->match_limit, offsets, offsetcount); |
6301 |
|
/* PCRE_ERROR_NULL means that the selected normal or partial matching |
6302 |
|
mode is not compiled. In this case we simply fallback to interpreter. */ |
6303 |
|
if (rc != PCRE_ERROR_NULL) |
6304 |
|
return rc; |
6305 |
|
} |
6306 |
#endif |
#endif |
6307 |
|
|
6308 |
/* Carry on with non-JIT matching. This information is for finding all the |
/* Carry on with non-JIT matching. This information is for finding all the |