diff --git a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp index c28ec8c668..3e87c5eb5d 100644 --- a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp +++ b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp @@ -559,21 +559,13 @@ StyleComponentValueRule Parser::consume_a_component_value() { auto token = next_token(); - if (token.is_open_curly() || token.is_open_square() || token.is_open_paren()) { - auto component = StyleComponentValueRule(StyleComponentValueRule::ComponentType::Block); - component.m_block = consume_a_simple_block(); - return component; - } + if (token.is_open_curly() || token.is_open_square() || token.is_open_paren()) + return StyleComponentValueRule(consume_a_simple_block()); - if (token.is_function()) { - auto component = StyleComponentValueRule(StyleComponentValueRule::ComponentType::Function); - component.m_function = consume_a_function(); - return component; - } + if (token.is_function()) + return StyleComponentValueRule(consume_a_function()); - auto component = StyleComponentValueRule(StyleComponentValueRule::ComponentType::Token); - component.m_token = token; - return component; + return StyleComponentValueRule(token); } NonnullRefPtr Parser::consume_a_simple_block() @@ -722,10 +714,7 @@ Vector Parser::consume_a_list_of_declarations() if (token.is_ident()) { Vector temp; - - auto component = StyleComponentValueRule(StyleComponentValueRule::ComponentType::Token); - component.m_token = token; - temp.append(component); + temp.append(StyleComponentValueRule(token)); for (;;) { auto peek = peek_token(); diff --git a/Userland/Libraries/LibWeb/CSS/Parser/StyleComponentValueRule.h b/Userland/Libraries/LibWeb/CSS/Parser/StyleComponentValueRule.h index 1510bbcdb3..cef3b06c9a 100644 --- a/Userland/Libraries/LibWeb/CSS/Parser/StyleComponentValueRule.h +++ b/Userland/Libraries/LibWeb/CSS/Parser/StyleComponentValueRule.h @@ -26,7 +26,9 @@ public: Block }; - explicit StyleComponentValueRule(ComponentType); + StyleComponentValueRule(Token); + explicit StyleComponentValueRule(NonnullRefPtr); + explicit StyleComponentValueRule(NonnullRefPtr); ~StyleComponentValueRule(); bool is_block() const { return m_type == ComponentType::Block; } diff --git a/Userland/Libraries/LibWeb/CSS/Parser/StyleRules.cpp b/Userland/Libraries/LibWeb/CSS/Parser/StyleRules.cpp index 18c1a8328d..2acd86a104 100644 --- a/Userland/Libraries/LibWeb/CSS/Parser/StyleRules.cpp +++ b/Userland/Libraries/LibWeb/CSS/Parser/StyleRules.cpp @@ -35,8 +35,19 @@ StyleRule::~StyleRule() { } StyleBlockRule::StyleBlockRule() { } StyleBlockRule::~StyleBlockRule() { } -StyleComponentValueRule::StyleComponentValueRule(ComponentType type) - : m_type(type) +StyleComponentValueRule::StyleComponentValueRule(Token token) + : m_type(StyleComponentValueRule::ComponentType::Token) + , m_token(token) +{ +} +StyleComponentValueRule::StyleComponentValueRule(NonnullRefPtr function) + : m_type(StyleComponentValueRule::ComponentType::Function) + , m_function(function) +{ +} +StyleComponentValueRule::StyleComponentValueRule(NonnullRefPtr block) + : m_type(StyleComponentValueRule::ComponentType::Block) + , m_block(block) { } StyleComponentValueRule::~StyleComponentValueRule() { }