From 0eb238cf006caac8f7b19a85426905d388f6a20a Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Fri, 1 Nov 2024 20:52:08 +0100 Subject: Force JIT compilation --- src/globals.h | 1 - src/main.c | 6 +----- src/work.c | 24 ++++++++++++------------ 3 files changed, 13 insertions(+), 18 deletions(-) (limited to 'src') 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 = "'"; diff --git a/src/main.c b/src/main.c index a23ff56..2e71bef 100644 --- a/src/main.c +++ b/src/main.c @@ -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 diff --git a/src/work.c b/src/work.c index 12d998f..bf66fdb 100644 --- a/src/work.c +++ b/src/work.c @@ -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) -- cgit v1.2.3