LibGUI: Tolerate Window::set_icon(nullptr)

Don't try to dereference a null icon. Instead just set a 16x16 empty
bitmap as the window icon.

This looks like the crash mentioned in #3817.
This commit is contained in:
Andreas Kling 2020-10-22 18:23:38 +02:00
parent 0341e3fde7
commit 0b746075d8
Notes: sideshowbarker 2024-07-19 01:48:23 +09:00

View File

@ -682,9 +682,11 @@ void Window::set_icon(const Gfx::Bitmap* icon)
if (m_icon == icon)
return;
m_icon = create_shared_bitmap(Gfx::BitmapFormat::RGBA32, icon->size());
Gfx::IntSize icon_size = icon ? icon->size() : Gfx::IntSize(16, 16);
m_icon = create_shared_bitmap(Gfx::BitmapFormat::RGBA32, icon_size);
ASSERT(m_icon);
{
if (icon) {
Painter painter(*m_icon);
painter.blit({ 0, 0 }, *icon, icon->rect());
}