From: Michael Tremer Date: Wed, 3 Mar 2021 15:01:28 +0000 (+0000) Subject: parser: Use JIT for PCRE2 X-Git-Tag: 0.9.28~1285^2~651 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a41868f99cdc6123157b05f992e4fa17fd8eba47;p=pakfire.git parser: Use JIT for PCRE2 Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/parser.c b/src/libpakfire/parser.c index f0a952b22..6411d8ff8 100644 --- a/src/libpakfire/parser.c +++ b/src/libpakfire/parser.c @@ -64,6 +64,14 @@ static int pakfire_parser_compile_regex(PakfireParser parser) { return 1; } + + // Enable JIT + pcre2_errno = pcre2_jit_compile(parser->regex_variable, PCRE2_JIT_COMPLETE); + if (pcre2_errno) { + pcre2_get_error_message(pcre2_errno, errmsg, sizeof(errmsg)); + ERROR(parser->pakfire, "Enabling JIT on variables failed: %s\n", errmsg); + return 1; + } } return 0; @@ -367,8 +375,8 @@ static int pakfire_parser_expand_variables(PakfireParser parser, // Search for any variables while (1) { // Perform matching - int r = pcre2_match(parser->regex_variable, (PCRE2_UCHAR*)*buffer, strlen(*buffer), - 0, 0, match, NULL); + int r = pcre2_jit_match(parser->regex_variable, + (PCRE2_UCHAR*)*buffer, strlen(*buffer), 0, 0, match, NULL); // End loop when we have expanded all variables if (r == PCRE2_ERROR_NOMATCH) {