LibWeb: Make factory method of HTML::CanvasRenderingContext2D fallible

This commit is contained in:
Kenneth Myhra 2023-02-15 18:48:20 +01:00 committed by Linus Groh
parent 2506666991
commit b7c488e51e
Notes: sideshowbarker 2024-07-17 03:51:15 +09:00
3 changed files with 4 additions and 4 deletions

View File

@ -24,9 +24,9 @@
namespace Web::HTML {
JS::NonnullGCPtr<CanvasRenderingContext2D> CanvasRenderingContext2D::create(JS::Realm& realm, HTMLCanvasElement& element)
WebIDL::ExceptionOr<JS::NonnullGCPtr<CanvasRenderingContext2D>> CanvasRenderingContext2D::create(JS::Realm& realm, HTMLCanvasElement& element)
{
return realm.heap().allocate<CanvasRenderingContext2D>(realm, realm, element).release_allocated_value_but_fixme_should_propagate_errors();
return MUST_OR_THROW_OOM(realm.heap().allocate<CanvasRenderingContext2D>(realm, realm, element));
}
CanvasRenderingContext2D::CanvasRenderingContext2D(JS::Realm& realm, HTMLCanvasElement& element)

View File

@ -52,7 +52,7 @@ class CanvasRenderingContext2D
WEB_PLATFORM_OBJECT(CanvasRenderingContext2D, Bindings::PlatformObject);
public:
static JS::NonnullGCPtr<CanvasRenderingContext2D> create(JS::Realm&, HTMLCanvasElement&);
static WebIDL::ExceptionOr<JS::NonnullGCPtr<CanvasRenderingContext2D>> create(JS::Realm&, HTMLCanvasElement&);
virtual ~CanvasRenderingContext2D() override;
virtual void fill_rect(float x, float y, float width, float height) override;

View File

@ -95,7 +95,7 @@ HTMLCanvasElement::HasOrCreatedContext HTMLCanvasElement::create_2d_context()
if (!m_context.has<Empty>())
return m_context.has<JS::NonnullGCPtr<CanvasRenderingContext2D>>() ? HasOrCreatedContext::Yes : HasOrCreatedContext::No;
m_context = CanvasRenderingContext2D::create(realm(), *this);
m_context = CanvasRenderingContext2D::create(realm(), *this).release_value_but_fixme_should_propagate_errors();
return HasOrCreatedContext::Yes;
}