From 11a8476cf42b6eaeef512f798fe61a222669078d Mon Sep 17 00:00:00 2001 From: Ali Mohammad Pur Date: Sat, 10 Jul 2021 23:07:22 +0430 Subject: [PATCH] LibRegex: Use the parser state capture group count in BRE Otherwise the users won't know how many capture groups are in the parsed regular expression. --- Userland/Libraries/LibRegex/RegexParser.cpp | 2 +- Userland/Libraries/LibRegex/RegexParser.h | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/Userland/Libraries/LibRegex/RegexParser.cpp b/Userland/Libraries/LibRegex/RegexParser.cpp index 814759de4e..b2b7c19f6d 100644 --- a/Userland/Libraries/LibRegex/RegexParser.cpp +++ b/Userland/Libraries/LibRegex/RegexParser.cpp @@ -411,7 +411,7 @@ bool PosixBasicParser::parse_nonduplicating_re(ByteCode& bytecode, size_t& match if (try_skip("\\(")) { ByteCode capture_bytecode; size_t capture_length_minimum = 0; - auto capture_group_index = ++m_capture_group; + auto capture_group_index = ++m_parser_state.capture_groups_count; if (!parse_re_expression(capture_bytecode, capture_length_minimum)) return false; diff --git a/Userland/Libraries/LibRegex/RegexParser.h b/Userland/Libraries/LibRegex/RegexParser.h index b4d1cc95e9..5be99edbba 100644 --- a/Userland/Libraries/LibRegex/RegexParser.h +++ b/Userland/Libraries/LibRegex/RegexParser.h @@ -155,7 +155,6 @@ private: bool parse_nonduplicating_re(ByteCode&, size_t&); bool parse_one_char_or_collation_element(ByteCode&, size_t&); - size_t m_capture_group { 0 }; constexpr static size_t number_of_addressable_capture_groups = 9; size_t m_capture_group_minimum_lengths[number_of_addressable_capture_groups] { 0 }; bool m_capture_group_seen[number_of_addressable_capture_groups] { false };