From d9e52997e261a603f92d6b7986a0a75945f97661 Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Sat, 22 May 2021 20:17:09 +0200 Subject: [PATCH] LibWeb: Use an Optional to track the last HTML start tag Using an HTMLToken object here is unnecessary because the only attribute we're interested in is the tag_name. --- Userland/Libraries/LibWeb/HTML/Parser/HTMLTokenizer.cpp | 6 +++--- Userland/Libraries/LibWeb/HTML/Parser/HTMLTokenizer.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Userland/Libraries/LibWeb/HTML/Parser/HTMLTokenizer.cpp b/Userland/Libraries/LibWeb/HTML/Parser/HTMLTokenizer.cpp index 9ed1607083..b3f61d9e5b 100644 --- a/Userland/Libraries/LibWeb/HTML/Parser/HTMLTokenizer.cpp +++ b/Userland/Libraries/LibWeb/HTML/Parser/HTMLTokenizer.cpp @@ -2649,16 +2649,16 @@ void HTMLTokenizer::switch_to(Badge, State new_state) void HTMLTokenizer::will_emit(HTMLToken& token) { if (token.is_start_tag()) - m_last_emitted_start_tag = token; + m_last_emitted_start_tag_name = token.tag_name(); token.m_end_position = nth_last_position(0); } bool HTMLTokenizer::current_end_tag_token_is_appropriate() const { VERIFY(m_current_token.is_end_tag()); - if (!m_last_emitted_start_tag.is_start_tag()) + if (!m_last_emitted_start_tag_name.has_value()) return false; - return m_current_token.tag_name() == m_last_emitted_start_tag.tag_name(); + return m_current_token.tag_name() == m_last_emitted_start_tag_name.value(); } bool HTMLTokenizer::consumed_as_part_of_an_attribute() const diff --git a/Userland/Libraries/LibWeb/HTML/Parser/HTMLTokenizer.h b/Userland/Libraries/LibWeb/HTML/Parser/HTMLTokenizer.h index 284b83e34b..ebde43ba3c 100644 --- a/Userland/Libraries/LibWeb/HTML/Parser/HTMLTokenizer.h +++ b/Userland/Libraries/LibWeb/HTML/Parser/HTMLTokenizer.h @@ -164,7 +164,7 @@ private: HTMLToken m_current_token; - HTMLToken m_last_emitted_start_tag; + Optional m_last_emitted_start_tag_name; bool m_has_emitted_eof { false };