diff --git a/Libraries/LibWeb/CSS/Parser/GradientParsing.cpp b/Libraries/LibWeb/CSS/Parser/GradientParsing.cpp index 1a9491861a4..ca616dc4ee5 100644 --- a/Libraries/LibWeb/CSS/Parser/GradientParsing.cpp +++ b/Libraries/LibWeb/CSS/Parser/GradientParsing.cpp @@ -19,7 +19,7 @@ namespace Web::CSS::Parser { template -Optional> Parser::parse_color_stop_list(TokenStream& tokens, auto is_position, auto get_position) +Optional> Parser::parse_color_stop_list(TokenStream& tokens, auto parse_position) { enum class ElementType { Garbage, @@ -35,10 +35,8 @@ Optional> Parser::parse_color_stop_list(TokenStream color; Optional position; Optional second_position; - if (auto dimension = parse_dimension(tokens.next_token()); dimension.has_value() && is_position(*dimension)) { + if (position = parse_position(tokens); position.has_value()) { // [ ] or [] - position = get_position(*dimension); - tokens.discard_a_token(); // dimension tokens.discard_whitespace(); // if (!tokens.has_next_token() || tokens.next_token().is(Token::Type::Comma)) { @@ -61,10 +59,9 @@ Optional> Parser::parse_color_stop_list(TokenStreamhas_value()) return ElementType::Garbage; - *stop_position = get_position(*dimension); tokens.discard_whitespace(); } } @@ -122,8 +119,7 @@ Optional> Parser::parse_linear_color_stop_lis // , [ ? , ]# return parse_color_stop_list( tokens, - [](Dimension& dimension) { return dimension.is_length_percentage(); }, - [](Dimension& dimension) { return dimension.length_percentage(); }); + [&](auto& it) { return parse_length_percentage(it); }); } Optional> Parser::parse_angular_color_stop_list(TokenStream& tokens) @@ -132,8 +128,7 @@ Optional> Parser::parse_angular_color_stop_l // , [ ? , ]# return parse_color_stop_list( tokens, - [](Dimension& dimension) { return dimension.is_angle_percentage(); }, - [](Dimension& dimension) { return dimension.angle_percentage(); }); + [&](auto& it) { return parse_angle_percentage(it); }); } RefPtr Parser::parse_linear_gradient_function(TokenStream& outer_tokens) diff --git a/Libraries/LibWeb/CSS/Parser/Parser.h b/Libraries/LibWeb/CSS/Parser/Parser.h index 2c925c9d47c..95b2439644f 100644 --- a/Libraries/LibWeb/CSS/Parser/Parser.h +++ b/Libraries/LibWeb/CSS/Parser/Parser.h @@ -257,7 +257,7 @@ private: RefPtr parse_basic_shape_value(TokenStream&); template - Optional> parse_color_stop_list(TokenStream& tokens, auto is_position, auto get_position); + Optional> parse_color_stop_list(TokenStream& tokens, auto parse_position); Optional> parse_linear_color_stop_list(TokenStream&); Optional> parse_angular_color_stop_list(TokenStream&);