소스 검색

LibRegex: Reset capture group indices when resetting parser state

AnotherTest 4 년 전
부모
커밋
be0182d049
1개의 변경된 파일5개의 추가작업 그리고 0개의 파일을 삭제
  1. 5 0
      Userland/Libraries/LibRegex/RegexParser.cpp

+ 5 - 0
Userland/Libraries/LibRegex/RegexParser.cpp

@@ -151,6 +151,11 @@ ALWAYS_INLINE void Parser::reset()
     m_parser_state.current_token = m_parser_state.lexer.next();
     m_parser_state.current_token = m_parser_state.lexer.next();
     m_parser_state.error = Error::NoError;
     m_parser_state.error = Error::NoError;
     m_parser_state.error_token = { TokenType::Eof, 0, StringView(nullptr) };
     m_parser_state.error_token = { TokenType::Eof, 0, StringView(nullptr) };
+    m_parser_state.capture_group_minimum_lengths.clear();
+    m_parser_state.capture_groups_count = 0;
+    m_parser_state.named_capture_groups_count = 0;
+    m_parser_state.named_capture_group_minimum_lengths.clear();
+    m_parser_state.named_capture_groups.clear();
 }
 }
 
 
 Parser::Result Parser::parse(Optional<AllOptions> regex_options)
 Parser::Result Parser::parse(Optional<AllOptions> regex_options)