LibWeb: Expose Parser::Function name as FlyString const&

This saves us from having to re-convert the StringView back to a
FlyString again when resolving UnresolvedStyleValues.
This commit is contained in:
Sam Atkins 2023-09-04 10:50:42 +01:00 committed by Andreas Kling
parent f527e55046
commit 733ad57f39
3 changed files with 5 additions and 6 deletions

View file

@ -25,7 +25,7 @@ public:
~Function();
StringView name() const { return m_name; }
FlyString const& name() const { return m_name; }
Vector<ComponentValue> const& values() const { return m_values; }
String to_string() const;

View file

@ -150,7 +150,7 @@ RefPtr<StyleValue> Parser::parse_linear_gradient_function(ComponentValue const&
GradientRepeating repeating_gradient = GradientRepeating::No;
GradientType gradient_type { GradientType::Standard };
auto function_name = component_value.function().name();
auto function_name = component_value.function().name().bytes_as_string_view();
function_name = consume_if_starts_with(function_name, "-webkit-"sv, [&] {
gradient_type = GradientType::WebKit;
@ -275,7 +275,7 @@ RefPtr<StyleValue> Parser::parse_conic_gradient_function(ComponentValue const& c
GradientRepeating repeating_gradient = GradientRepeating::No;
auto function_name = component_value.function().name();
auto function_name = component_value.function().name().bytes_as_string_view();
function_name = consume_if_starts_with(function_name, "repeating-"sv, [&] {
repeating_gradient = GradientRepeating::Yes;
@ -378,7 +378,7 @@ RefPtr<StyleValue> Parser::parse_radial_gradient_function(ComponentValue const&
auto repeating_gradient = GradientRepeating::No;
auto function_name = component_value.function().name();
auto function_name = component_value.function().name().bytes_as_string_view();
function_name = consume_if_starts_with(function_name, "repeating-"sv, [&] {
repeating_gradient = GradientRepeating::Yes;

View file

@ -1140,8 +1140,7 @@ bool StyleComputer::expand_unresolved_values(DOM::Element& element, StringView p
Parser::TokenStream source_function_contents { source_function.values() };
if (!expand_unresolved_values(element, property_name, source_function_contents, function_values))
return false;
// FIXME: This would be much nicer if we could access the source_function's FlyString value directly.
NonnullRefPtr<Parser::Function> function = Parser::Function::create(FlyString::from_utf8(source_function.name()).release_value_but_fixme_should_propagate_errors(), move(function_values));
NonnullRefPtr<Parser::Function> function = Parser::Function::create(source_function.name(), move(function_values));
dest.empend(function);
continue;
}