From 24d7e688fcc48577c4927448aa751ff584517194 Mon Sep 17 00:00:00 2001 From: Kenneth Myhra Date: Tue, 14 Feb 2023 22:55:51 +0100 Subject: [PATCH] LibWeb: Make factory method of DOM::LiveNodeList fallible --- Userland/Libraries/LibWeb/DOM/LiveNodeList.cpp | 4 ++-- Userland/Libraries/LibWeb/DOM/LiveNodeList.h | 2 +- Userland/Libraries/LibWeb/DOM/Node.cpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Userland/Libraries/LibWeb/DOM/LiveNodeList.cpp b/Userland/Libraries/LibWeb/DOM/LiveNodeList.cpp index 062dd4df20..7ce6603371 100644 --- a/Userland/Libraries/LibWeb/DOM/LiveNodeList.cpp +++ b/Userland/Libraries/LibWeb/DOM/LiveNodeList.cpp @@ -10,9 +10,9 @@ namespace Web::DOM { -JS::NonnullGCPtr LiveNodeList::create(JS::Realm& realm, Node& root, Function filter) +WebIDL::ExceptionOr> LiveNodeList::create(JS::Realm& realm, Node& root, Function filter) { - return realm.heap().allocate(realm, realm, root, move(filter)).release_allocated_value_but_fixme_should_propagate_errors(); + return MUST_OR_THROW_OOM(realm.heap().allocate(realm, realm, root, move(filter))); } LiveNodeList::LiveNodeList(JS::Realm& realm, Node& root, Function filter) diff --git a/Userland/Libraries/LibWeb/DOM/LiveNodeList.h b/Userland/Libraries/LibWeb/DOM/LiveNodeList.h index 7aa602059f..b5d242e0b1 100644 --- a/Userland/Libraries/LibWeb/DOM/LiveNodeList.h +++ b/Userland/Libraries/LibWeb/DOM/LiveNodeList.h @@ -18,7 +18,7 @@ class LiveNodeList final : public NodeList { WEB_PLATFORM_OBJECT(LiveNodeList, NodeList); public: - static JS::NonnullGCPtr create(JS::Realm&, Node& root, Function filter); + static WebIDL::ExceptionOr> create(JS::Realm&, Node& root, Function filter); virtual ~LiveNodeList() override; virtual u32 length() const override; diff --git a/Userland/Libraries/LibWeb/DOM/Node.cpp b/Userland/Libraries/LibWeb/DOM/Node.cpp index 4ca8818b88..9d1b2342da 100644 --- a/Userland/Libraries/LibWeb/DOM/Node.cpp +++ b/Userland/Libraries/LibWeb/DOM/Node.cpp @@ -890,7 +890,7 @@ JS::NonnullGCPtr Node::child_nodes() if (!m_child_nodes) { m_child_nodes = LiveNodeList::create(realm(), *this, [this](auto& node) { return is_parent_of(node); - }); + }).release_value_but_fixme_should_propagate_errors(); } return *m_child_nodes; }