From 9903e23af93e01c1a9ff8abfc9ed967af70d9950 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sun, 15 Jan 2023 12:57:05 +0100 Subject: [PATCH] TgaImageConverter: don't zero-init all output for no reason. --- .../TgaImageConverter/TgaImageConverter.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/MagnumPlugins/TgaImageConverter/TgaImageConverter.cpp b/src/MagnumPlugins/TgaImageConverter/TgaImageConverter.cpp index 821a26e3f..14fc26de0 100644 --- a/src/MagnumPlugins/TgaImageConverter/TgaImageConverter.cpp +++ b/src/MagnumPlugins/TgaImageConverter/TgaImageConverter.cpp @@ -66,25 +66,26 @@ Containers::Optional> TgaImageConverter::doConvertToData /* Initialize data buffer */ const auto pixelSize = UnsignedByte(image.pixelSize()); - Containers::Array data{ValueInit, sizeof(Implementation::TgaHeader) + pixelSize*image.size().product()}; + Containers::Array data{NoInit, sizeof(Implementation::TgaHeader) + pixelSize*image.size().product()}; - /* Fill header */ - auto header = reinterpret_cast(data.begin()); + /* Clear the header and fill non-zero values */ + auto& header = *reinterpret_cast(data.begin()); + header = {}; switch(image.format()) { case PixelFormat::RGB8Unorm: case PixelFormat::RGBA8Unorm: - header->imageType = 2; + header.imageType = 2; break; case PixelFormat::R8Unorm: - header->imageType = 3; + header.imageType = 3; break; default: Error() << "Trade::TgaImageConverter::convertToData(): unsupported pixel format" << image.format(); return {}; } - header->bpp = pixelSize*8; - header->width = UnsignedShort(Utility::Endianness::littleEndian(image.size().x())); - header->height = UnsignedShort(Utility::Endianness::littleEndian(image.size().y())); + header.bpp = pixelSize*8; + header.width = UnsignedShort(Utility::Endianness::littleEndian(image.size().x())); + header.height = UnsignedShort(Utility::Endianness::littleEndian(image.size().y())); /* Copy the pixels into output, dropping padding (if any) */ const Containers::ArrayView pixels = data.exceptPrefix(sizeof(Implementation::TgaHeader));