mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-04-30 03:27:15 +02:00
LibWeb/CSS: Make StringStyleValue hold a FlyString
We already have a FlyString of its value from parsing, and most users also want a FlyString from it, so let's use that instead of converting backwards and forwards. The two users that did want a String are: - Quotes, which make sense as FlyString instead, so I've converted that. - Animation names, which should probably be FlyString too, but the code currently also allows for other kinds of StyleValue, and I don't want to dive into this right now to figure out if that's needed or not.
This commit is contained in:
committed by
Tim Ledbetter
parent
d2f04b9f04
commit
9fb44cb057
Notes:
sideshowbarker
2024-07-18 02:44:48 +09:00
Author: https://github.com/AtkinsSJ Commit: https://github.com/LadybirdBrowser/ladybird/commit/9fb44cb0577 Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/681 Reviewed-by: https://github.com/tcl3 ✅
@@ -1,37 +1,37 @@
|
||||
/*
|
||||
* Copyright (c) 2022-2023, Sam Atkins <atkinssj@serenityos.org>
|
||||
* Copyright (c) 2022-2024, Sam Atkins <atkinssj@serenityos.org>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <AK/String.h>
|
||||
#include <AK/FlyString.h>
|
||||
#include <LibWeb/CSS/StyleValue.h>
|
||||
|
||||
namespace Web::CSS {
|
||||
|
||||
class StringStyleValue : public StyleValueWithDefaultOperators<StringStyleValue> {
|
||||
public:
|
||||
static ValueComparingNonnullRefPtr<StringStyleValue> create(String const& string)
|
||||
static ValueComparingNonnullRefPtr<StringStyleValue> create(FlyString const& string)
|
||||
{
|
||||
return adopt_ref(*new (nothrow) StringStyleValue(string));
|
||||
}
|
||||
virtual ~StringStyleValue() override = default;
|
||||
|
||||
String string_value() const { return m_string; }
|
||||
FlyString string_value() const { return m_string; }
|
||||
String to_string() const override { return serialize_a_string(m_string); }
|
||||
|
||||
bool properties_equal(StringStyleValue const& other) const { return m_string == other.m_string; }
|
||||
|
||||
private:
|
||||
explicit StringStyleValue(String const& string)
|
||||
explicit StringStyleValue(FlyString const& string)
|
||||
: StyleValueWithDefaultOperators(Type::String)
|
||||
, m_string(string)
|
||||
{
|
||||
}
|
||||
|
||||
String m_string;
|
||||
FlyString m_string;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user