From 552663a2ba934424ce1279cd4959d225a1f287cf Mon Sep 17 00:00:00 2001 From: Kenneth Myhra Date: Tue, 14 Feb 2023 21:41:47 +0100 Subject: [PATCH] LibWeb: Make factory method of DOM::TreeWalker fallible --- Userland/Libraries/LibWeb/DOM/Document.cpp | 2 +- Userland/Libraries/LibWeb/DOM/TreeWalker.cpp | 4 ++-- Userland/Libraries/LibWeb/DOM/TreeWalker.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Userland/Libraries/LibWeb/DOM/Document.cpp b/Userland/Libraries/LibWeb/DOM/Document.cpp index a76f45e7234..e7e5a75afee 100644 --- a/Userland/Libraries/LibWeb/DOM/Document.cpp +++ b/Userland/Libraries/LibWeb/DOM/Document.cpp @@ -1953,7 +1953,7 @@ JS::NonnullGCPtr Document::create_node_iterator(Node& root, unsign // https://dom.spec.whatwg.org/#dom-document-createtreewalker JS::NonnullGCPtr Document::create_tree_walker(Node& root, unsigned what_to_show, JS::GCPtr filter) { - return TreeWalker::create(root, what_to_show, filter); + return TreeWalker::create(root, what_to_show, filter).release_value_but_fixme_should_propagate_errors(); } void Document::register_node_iterator(Badge, NodeIterator& node_iterator) diff --git a/Userland/Libraries/LibWeb/DOM/TreeWalker.cpp b/Userland/Libraries/LibWeb/DOM/TreeWalker.cpp index bd4ba764cf0..a163bac8c04 100644 --- a/Userland/Libraries/LibWeb/DOM/TreeWalker.cpp +++ b/Userland/Libraries/LibWeb/DOM/TreeWalker.cpp @@ -39,12 +39,12 @@ void TreeWalker::visit_edges(Cell::Visitor& visitor) } // https://dom.spec.whatwg.org/#dom-document-createtreewalker -JS::NonnullGCPtr TreeWalker::create(Node& root, unsigned what_to_show, JS::GCPtr filter) +WebIDL::ExceptionOr> TreeWalker::create(Node& root, unsigned what_to_show, JS::GCPtr filter) { // 1. Let walker be a new TreeWalker object. // 2. Set walker’s root and walker’s current to root. auto& realm = root.realm(); - auto walker = realm.heap().allocate(realm, root).release_allocated_value_but_fixme_should_propagate_errors(); + auto walker = MUST_OR_THROW_OOM(realm.heap().allocate(realm, root)); // 3. Set walker’s whatToShow to whatToShow. walker->m_what_to_show = what_to_show; diff --git a/Userland/Libraries/LibWeb/DOM/TreeWalker.h b/Userland/Libraries/LibWeb/DOM/TreeWalker.h index 96b84cae68c..b2dbff68d12 100644 --- a/Userland/Libraries/LibWeb/DOM/TreeWalker.h +++ b/Userland/Libraries/LibWeb/DOM/TreeWalker.h @@ -15,7 +15,7 @@ class TreeWalker final : public Bindings::PlatformObject { WEB_PLATFORM_OBJECT(TreeWalker, Bindings::PlatformObject); public: - static JS::NonnullGCPtr create(Node& root, unsigned what_to_show, JS::GCPtr); + static WebIDL::ExceptionOr> create(Node& root, unsigned what_to_show, JS::GCPtr); virtual ~TreeWalker() override;