mirror of
https://github.com/fergalmoran/ladybird.git
synced 2025-12-27 03:37:53 +00:00
LibWeb: Null-check surface before allocating painter for context2d
Fixes https://github.com/LadybirdBrowser/ladybird/issues/2755
This commit is contained in:
committed by
Alexander Kalenik
parent
1081a7f3e2
commit
72f093ba9f
@@ -199,8 +199,9 @@ void CanvasRenderingContext2D::did_draw(Gfx::FloatRect const&)
|
||||
|
||||
Gfx::Painter* CanvasRenderingContext2D::painter()
|
||||
{
|
||||
if (!canvas_element().surface()) {
|
||||
allocate_painting_surface_if_needed();
|
||||
allocate_painting_surface_if_needed();
|
||||
auto surface = canvas_element().surface();
|
||||
if (!m_painter && surface) {
|
||||
canvas_element().document().invalidate_display_list();
|
||||
m_painter = make<Gfx::PainterSkia>(*canvas_element().surface());
|
||||
}
|
||||
@@ -217,7 +218,7 @@ void CanvasRenderingContext2D::set_size(Gfx::IntSize const& size)
|
||||
|
||||
void CanvasRenderingContext2D::allocate_painting_surface_if_needed()
|
||||
{
|
||||
if (m_surface)
|
||||
if (m_surface || m_size.is_empty())
|
||||
return;
|
||||
auto skia_backend_context = canvas_element().navigable()->traversable_navigable()->skia_backend_context();
|
||||
m_surface = Gfx::PaintingSurface::create_with_size(skia_backend_context, canvas_element().bitmap_size_for_canvas(), Gfx::BitmapFormat::BGRA8888, Gfx::AlphaType::Premultiplied);
|
||||
|
||||
Reference in New Issue
Block a user