diff options
author | Thomas Voss <mail@thomasvoss.com> | 2024-11-01 20:52:08 +0100 |
---|---|---|
committer | Thomas Voss <mail@thomasvoss.com> | 2024-11-01 20:52:08 +0100 |
commit | 0eb238cf006caac8f7b19a85426905d388f6a20a (patch) | |
tree | 90c9acd83c029fb5759b56b77b483bd44f4511a6 | |
parent | 849d39783113dab5f3130e3e59cd8b30f53b136e (diff) |
Force JIT compilation
-rw-r--r-- | src/globals.h | 1 | ||||
-rw-r--r-- | src/main.c | 6 | ||||
-rw-r--r-- | src/work.c | 24 |
3 files changed, 13 insertions, 18 deletions
diff --git a/src/globals.h b/src/globals.h index 9475bc3..1285db3 100644 --- a/src/globals.h +++ b/src/globals.h @@ -39,7 +39,6 @@ typedef struct { maybe_extern flags_t flags; maybe_extern int grab_tabsize; maybe_extern op_t *ops; -maybe_extern typeof(pcre2_match) *pcre2_match_fn; #if MAIN_C atomic_int rv = EXIT_NOMATCH; const char *lquot = "`", *rquot = "'"; @@ -347,12 +347,8 @@ pattern_comp(u8view_t pat) pcre2_bitch_and_die( ec, "failed to compile regex at byte offset %zu: %s", eoff); } - if ((ec = pcre2_jit_compile(op.re, PCRE2_JIT_COMPLETE)) != 0) { + if ((ec = pcre2_jit_compile(op.re, PCRE2_JIT_COMPLETE)) != 0) pcre2_bitch_and_die(ec, "failed to JIT compile regex: %s"); - rv = EXIT_WARNING; - pcre2_match_fn = pcre2_match; - } else - pcre2_match_fn = pcre2_jit_match; #if DEBUG op.free_me = true; #endif @@ -185,8 +185,8 @@ DEFINE_OPERATOR(g) { pcre2_match_data *md = pcre2_match_data_create_from_pattern(ops[opi].re, nullptr); - int n = pcre2_match_fn(ops[opi].re, sv.p, sv.len, 0, PCRE2_NOTEMPTY, - md, nullptr); + int n = pcre2_jit_match(ops[opi].re, sv.p, sv.len, 0, PCRE2_NOTEMPTY, + md, nullptr); pcre2_match_data_free(md); if (n == PCRE2_ERROR_NOMATCH) @@ -201,8 +201,8 @@ DEFINE_OPERATOR(G) { pcre2_match_data *md = pcre2_match_data_create_from_pattern(ops[opi].re, nullptr); - int n = pcre2_match_fn(ops[opi].re, sv.p, sv.len, 0, PCRE2_NOTEMPTY, - md, nullptr); + int n = pcre2_jit_match(ops[opi].re, sv.p, sv.len, 0, PCRE2_NOTEMPTY, + md, nullptr); pcre2_match_data_free(md); if (n == PCRE2_ERROR_NOMATCH) @@ -223,8 +223,8 @@ DEFINE_OPERATOR(h) u8view_t sv_save = sv; ptrdiff_t origlen = array_len(*hl); for (;;) { - int n = pcre2_match_fn(ops[opi].re, sv.p, sv.len, 0, - PCRE2_NOTEMPTY, md, nullptr); + int n = pcre2_jit_match(ops[opi].re, sv.p, sv.len, 0, + PCRE2_NOTEMPTY, md, nullptr); if (n == PCRE2_ERROR_NOMATCH) break; if (n < 0) @@ -251,8 +251,8 @@ DEFINE_OPERATOR(H) u8view_t sv_save = sv; ptrdiff_t origlen = array_len(*hl); for (;;) { - int n = pcre2_match_fn(ops[opi].re, sv.p, sv.len, 0, PCRE2_NOTEMPTY, - md, nullptr); + int n = pcre2_jit_match(ops[opi].re, sv.p, sv.len, 0, PCRE2_NOTEMPTY, + md, nullptr); if (n == PCRE2_ERROR_NOMATCH) break; if (n < 0) @@ -272,8 +272,8 @@ DEFINE_OPERATOR(x) pcre2_match_data *md = pcre2_match_data_create_from_pattern(ops[opi].re, nullptr); for (;;) { - int n = pcre2_match_fn(ops[opi].re, sv.p, sv.len, 0, PCRE2_NOTEMPTY, - md, nullptr); + int n = pcre2_jit_match(ops[opi].re, sv.p, sv.len, 0, PCRE2_NOTEMPTY, + md, nullptr); if (n == PCRE2_ERROR_NOMATCH) break; if (n < 0) @@ -291,8 +291,8 @@ DEFINE_OPERATOR(X) pcre2_match_data *md = pcre2_match_data_create_from_pattern(ops[opi].re, nullptr); for (;;) { - int n = pcre2_match_fn(ops[opi].re, sv.p, sv.len, 0, PCRE2_NOTEMPTY, - md, nullptr); + int n = pcre2_jit_match(ops[opi].re, sv.p, sv.len, 0, PCRE2_NOTEMPTY, + md, nullptr); if (n == PCRE2_ERROR_NOMATCH) break; if (n < 0) |