Pārlūkot izejas kodu

LibWeb: Make factory method of DOM::DOMImplementation fallible

Kenneth Myhra 2 gadi atpakaļ
vecāks
revīzija
b9c5828fe6

+ 2 - 2
Userland/Libraries/LibWeb/DOM/DOMImplementation.cpp

@@ -17,10 +17,10 @@
 
 namespace Web::DOM {
 
-JS::NonnullGCPtr<DOMImplementation> DOMImplementation::create(Document& document)
+WebIDL::ExceptionOr<JS::NonnullGCPtr<DOMImplementation>> DOMImplementation::create(Document& document)
 {
     auto& realm = document.realm();
-    return realm.heap().allocate<DOMImplementation>(realm, document).release_allocated_value_but_fixme_should_propagate_errors();
+    return MUST_OR_THROW_OOM(realm.heap().allocate<DOMImplementation>(realm, document));
 }
 
 DOMImplementation::DOMImplementation(Document& document)

+ 1 - 1
Userland/Libraries/LibWeb/DOM/DOMImplementation.h

@@ -17,7 +17,7 @@ class DOMImplementation final : public Bindings::PlatformObject {
     WEB_PLATFORM_OBJECT(DOMImplementation, Bindings::PlatformObject);
 
 public:
-    static JS::NonnullGCPtr<DOMImplementation> create(Document&);
+    static WebIDL::ExceptionOr<JS::NonnullGCPtr<DOMImplementation>> create(Document&);
     virtual ~DOMImplementation();
 
     WebIDL::ExceptionOr<JS::NonnullGCPtr<Document>> create_document(DeprecatedString const&, DeprecatedString const&, JS::GCPtr<DocumentType>) const;

+ 1 - 1
Userland/Libraries/LibWeb/DOM/Document.cpp

@@ -1824,7 +1824,7 @@ void Document::evaluate_media_rules()
 DOMImplementation* Document::implementation()
 {
     if (!m_implementation)
-        m_implementation = DOMImplementation::create(*this);
+        m_implementation = DOMImplementation::create(*this).release_value_but_fixme_should_propagate_errors();
     return m_implementation;
 }