LibWeb: Construct CSS Tokenizer and Parser with a StringView encoding

This doesn't need to be a full (Deprecated)String, so let's not force it
to be.
This commit is contained in:
Sam Atkins 2023-02-13 17:25:32 +00:00 committed by Tim Flynn
parent d6075ef5b5
commit 8af65108e4
Notes: sideshowbarker 2024-07-17 06:51:40 +09:00
5 changed files with 6 additions and 6 deletions

View file

@ -82,7 +82,7 @@ AK::URL ParsingContext::complete_url(DeprecatedString const& addr) const
return m_url.complete_url(addr);
}
Parser::Parser(ParsingContext const& context, StringView input, DeprecatedString const& encoding)
Parser::Parser(ParsingContext const& context, StringView input, StringView encoding)
: m_context(context)
, m_tokenizer(input, encoding)
, m_tokens(m_tokenizer.parse())

View file

@ -59,7 +59,7 @@ private:
class Parser {
public:
Parser(ParsingContext const&, StringView input, DeprecatedString const& encoding = "utf-8");
Parser(ParsingContext const&, StringView input, StringView encoding = "utf-8"sv);
~Parser() = default;
CSSStyleSheet* parse_as_css_stylesheet(Optional<AK::URL> location);

View file

@ -195,10 +195,10 @@ static inline bool is_E(u32 code_point)
return code_point == 0x45;
}
Tokenizer::Tokenizer(StringView input, DeprecatedString const& encoding)
Tokenizer::Tokenizer(StringView input, StringView encoding)
{
// https://www.w3.org/TR/css-syntax-3/#css-filter-code-points
auto filter_code_points = [](StringView input, auto const& encoding) -> DeprecatedString {
auto filter_code_points = [](StringView input, auto encoding) -> DeprecatedString {
auto* decoder = TextCodec::decoder_for(encoding);
VERIFY(decoder);

View file

@ -60,7 +60,7 @@ public:
class Tokenizer {
public:
explicit Tokenizer(StringView input, DeprecatedString const& encoding);
explicit Tokenizer(StringView input, StringView encoding);
[[nodiscard]] Vector<Token> parse();

View file

@ -43,7 +43,7 @@ void SyntaxHighlighter::rehighlight(Palette const& palette)
false);
};
CSS::Parser::Tokenizer tokenizer { text, "utf-8" };
CSS::Parser::Tokenizer tokenizer { text, "utf-8"sv };
auto tokens = tokenizer.parse();
for (auto const& token : tokens) {
if (token.is(Parser::Token::Type::EndOfFile))