From 4f4a908e5f70d03121db3702972ffbf5152ab5ea Mon Sep 17 00:00:00 2001 From: Kenneth Myhra Date: Sun, 12 Feb 2023 23:38:05 +0100 Subject: [PATCH] LibWeb: Make factory method of CSS::CSSStyleRule fallible --- Userland/Libraries/LibWeb/CSS/CSSStyleRule.cpp | 5 +++-- Userland/Libraries/LibWeb/CSS/CSSStyleRule.h | 2 +- Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Userland/Libraries/LibWeb/CSS/CSSStyleRule.cpp b/Userland/Libraries/LibWeb/CSS/CSSStyleRule.cpp index 792615596e..d0ee591986 100644 --- a/Userland/Libraries/LibWeb/CSS/CSSStyleRule.cpp +++ b/Userland/Libraries/LibWeb/CSS/CSSStyleRule.cpp @@ -8,12 +8,13 @@ #include #include #include +#include namespace Web::CSS { -CSSStyleRule* CSSStyleRule::create(JS::Realm& realm, NonnullRefPtrVector&& selectors, CSSStyleDeclaration& declaration) +WebIDL::ExceptionOr> CSSStyleRule::create(JS::Realm& realm, NonnullRefPtrVector&& selectors, CSSStyleDeclaration& declaration) { - return realm.heap().allocate(realm, realm, move(selectors), declaration).release_allocated_value_but_fixme_should_propagate_errors(); + return MUST_OR_THROW_OOM(realm.heap().allocate(realm, realm, move(selectors), declaration)); } CSSStyleRule::CSSStyleRule(JS::Realm& realm, NonnullRefPtrVector&& selectors, CSSStyleDeclaration& declaration) diff --git a/Userland/Libraries/LibWeb/CSS/CSSStyleRule.h b/Userland/Libraries/LibWeb/CSS/CSSStyleRule.h index d6f7680570..1a9b15466a 100644 --- a/Userland/Libraries/LibWeb/CSS/CSSStyleRule.h +++ b/Userland/Libraries/LibWeb/CSS/CSSStyleRule.h @@ -19,7 +19,7 @@ class CSSStyleRule final : public CSSRule { WEB_PLATFORM_OBJECT(CSSStyleRule, CSSRule); public: - static CSSStyleRule* create(JS::Realm&, NonnullRefPtrVector&&, CSSStyleDeclaration&); + static WebIDL::ExceptionOr> create(JS::Realm&, NonnullRefPtrVector&&, CSSStyleDeclaration&); virtual ~CSSStyleRule() override = default; diff --git a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp index bbeb22c47c..6d4ca036b6 100644 --- a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp +++ b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp @@ -3120,7 +3120,7 @@ CSSRule* Parser::convert_to_rule(NonnullRefPtr rule) return {}; } - return CSSStyleRule::create(m_context.realm(), move(selectors.value()), *declaration); + return CSSStyleRule::create(m_context.realm(), move(selectors.value()), *declaration).release_value_but_fixme_should_propagate_errors(); } auto Parser::extract_properties(Vector const& declarations_and_at_rules) -> PropertiesAndCustomProperties