diff --git a/Userland/Libraries/LibGfx/PNGWriter.cpp b/Userland/Libraries/LibGfx/PNGWriter.cpp index 2fff44c641f..1821809afeb 100644 --- a/Userland/Libraries/LibGfx/PNGWriter.cpp +++ b/Userland/Libraries/LibGfx/PNGWriter.cpp @@ -8,6 +8,7 @@ #include #include +#include #include #include #include @@ -174,8 +175,8 @@ ErrorOr PNGWriter::add_IDAT_chunk(Gfx::Bitmap const& bitmap) ByteBuffer uncompressed_block_data; TRY(uncompressed_block_data.try_ensure_capacity(bitmap.size_in_bytes() + bitmap.height())); - Pixel dummy_scanline[bitmap.width()]; - auto const* scanline_minus_1 = dummy_scanline; + auto dummy_scanline = TRY(FixedArray::try_create(bitmap.width())); + auto const* scanline_minus_1 = dummy_scanline.data(); for (int y = 0; y < bitmap.height(); ++y) { auto* scanline = reinterpret_cast(bitmap.scanline(y)); @@ -217,8 +218,8 @@ ErrorOr PNGWriter::add_IDAT_chunk(Gfx::Bitmap const& bitmap) Filter paeth_filter { .type = PNG::FilterType::Paeth }; TRY(paeth_filter.buffer.try_ensure_capacity(sizeof(ARGB32) * bitmap.height())); - auto pixel_x_minus_1 = Pixel::gfx_to_png(*dummy_scanline); - auto pixel_xy_minus_1 = Pixel::gfx_to_png(*dummy_scanline); + auto pixel_x_minus_1 = Pixel::gfx_to_png(dummy_scanline[0]); + auto pixel_xy_minus_1 = Pixel::gfx_to_png(dummy_scanline[0]); for (int x = 0; x < bitmap.width(); ++x) { auto pixel = Pixel::gfx_to_png(scanline[x]);