LibRegex: Move required bytecode.flatten() outside optimization function

Not running the optimization passes should not leave the bytecode in a
broken state. Fixes #5146.
This commit is contained in:
Ali Mohammad Pur 2025-06-24 15:48:33 +02:00 committed by Jelle Raaijmakers
commit 2947ae7d6e
Notes: github-actions[bot] 2025-06-24 16:44:34 +00:00
2 changed files with 2 additions and 2 deletions

View file

@ -74,6 +74,7 @@ Regex<Parser>::Regex(ByteString pattern, typename ParserTraits<Parser>::OptionsT
Parser parser(lexer, regex_options);
parser_result = parser.parse();
parser_result.bytecode.flatten();
run_optimization_passes();
@ -90,6 +91,7 @@ Regex<Parser>::Regex(regex::Parser::Result parse_result, ByteString pattern, typ
: pattern_value(move(pattern))
, parser_result(move(parse_result))
{
parser_result.bytecode.flatten();
run_optimization_passes();
if (parser_result.error == regex::Error::NoError)
matcher = make<Matcher<Parser>>(this, regex_options | static_cast<decltype(regex_options.value())>(parser_result.options.value()));