From b88ff975371a6d251f93b22596366c07007bacf3 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Thu, 7 Nov 2019 17:58:54 +0100 Subject: [PATCH] LibHTML: Make the CSS parser return RefPtr's It should be possible for the CSS parser to fail, and we'll know it failed if it returns nullptr. Returning RefPtr's makes it actually possible to return nullptr. :^) --- Libraries/LibHTML/CSS/StyleResolver.cpp | 2 +- Libraries/LibHTML/Parser/CSSParser.cpp | 8 ++++---- Libraries/LibHTML/Parser/CSSParser.h | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Libraries/LibHTML/CSS/StyleResolver.cpp b/Libraries/LibHTML/CSS/StyleResolver.cpp index 76c4a34ae0..9377943ca5 100644 --- a/Libraries/LibHTML/CSS/StyleResolver.cpp +++ b/Libraries/LibHTML/CSS/StyleResolver.cpp @@ -22,7 +22,7 @@ static StyleSheet& default_stylesheet() if (!sheet) { extern const char default_stylesheet_source[]; String css = default_stylesheet_source; - sheet = &parse_css(css).leak_ref(); + sheet = parse_css(css).leak_ref(); } return *sheet; } diff --git a/Libraries/LibHTML/Parser/CSSParser.cpp b/Libraries/LibHTML/Parser/CSSParser.cpp index 5ce42df1cb..5c562389bb 100644 --- a/Libraries/LibHTML/Parser/CSSParser.cpp +++ b/Libraries/LibHTML/Parser/CSSParser.cpp @@ -376,7 +376,7 @@ public: consume_whitespace_or_comments(); } - NonnullRefPtr parse_sheet() + RefPtr parse_sheet() { while (index < css.length()) { parse_rule(); @@ -385,7 +385,7 @@ public: return StyleSheet::create(move(rules)); } - NonnullRefPtr parse_standalone_declaration() + RefPtr parse_standalone_declaration() { consume_whitespace_or_comments(); for (;;) { @@ -415,13 +415,13 @@ private: StringView css; }; -NonnullRefPtr parse_css(const StringView& css) +RefPtr parse_css(const StringView& css) { CSSParser parser(css); return parser.parse_sheet(); } -NonnullRefPtr parse_css_declaration(const StringView& css) +RefPtr parse_css_declaration(const StringView& css) { CSSParser parser(css); return parser.parse_standalone_declaration(); diff --git a/Libraries/LibHTML/Parser/CSSParser.h b/Libraries/LibHTML/Parser/CSSParser.h index 44e57f5dd5..050b0dd8c7 100644 --- a/Libraries/LibHTML/Parser/CSSParser.h +++ b/Libraries/LibHTML/Parser/CSSParser.h @@ -3,6 +3,6 @@ #include #include -NonnullRefPtr parse_css(const StringView&); -NonnullRefPtr parse_css_declaration(const StringView&); +RefPtr parse_css(const StringView&); +RefPtr parse_css_declaration(const StringView&);