From fbedadb61f49ba3aaf4f07939b4fc7d0b8f8ac03 Mon Sep 17 00:00:00 2001 From: TSUYUSATO Kitsune Date: Wed, 14 Dec 2022 12:57:14 +0900 Subject: Add `Regexp.linear_time?` (#6901) --- regexec.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'regexec.c') diff --git a/regexec.c b/regexec.c index a9822ee064..a52ed800c5 100644 --- a/regexec.c +++ b/regexec.c @@ -694,7 +694,21 @@ unexpected_bytecode_error: bytecode_error: return ONIGERR_UNDEFINED_BYTECODE; } -#endif /* USE_MATCH_CACHE */ +#else /* USE_MATCH_CACHE */ +static OnigPosition count_num_cache_opcode(regex_t* reg, long* num, long* table_size) +{ + *num = NUM_CACHE_OPCODE_FAIL; + return 0; +} +#endif + +extern int +onig_check_linear_time(OnigRegexType* reg) +{ + long num = 0, table_size = 0; + count_num_cache_opcode(reg, &num, &table_size); + return num != NUM_CACHE_OPCODE_FAIL; +} extern void onig_region_clear(OnigRegion* region) -- cgit v1.2.1