From d1028f8aed5a812e34c4de7d6b6e003d3ea8199e Mon Sep 17 00:00:00 2001 From: Aziz Berkay Yesilyurt Date: Sun, 11 Jul 2021 21:54:18 +0200 Subject: [PATCH] LibGfx: Use clear_with capacity instead of clear in PNGWriter Same vector was cleared up and filled in continuously. --- Userland/Libraries/LibGfx/PNGWriter.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/Userland/Libraries/LibGfx/PNGWriter.cpp b/Userland/Libraries/LibGfx/PNGWriter.cpp index 2812aa29f8..f1e04e13ca 100644 --- a/Userland/Libraries/LibGfx/PNGWriter.cpp +++ b/Userland/Libraries/LibGfx/PNGWriter.cpp @@ -31,6 +31,9 @@ public: void add_u8(u8); + template + void add(T*, size_t); + void store_type(); void store_data_length(); u32 crc(); @@ -92,6 +95,12 @@ requires(IsUnsigned) void PNGChunk::add(T data) m_data.append(&data, sizeof(T)); } +template +void PNGChunk::add(T* data, size_t size) +{ + m_data.append(data, size); +} + template void PNGChunk::add_as_little_endian(T data) { @@ -117,7 +126,7 @@ void NonCompressibleBlock::add_byte_to_block(u8 data, PNGChunk& chunk) update_adler(data); if (full()) { add_block_to_chunk(chunk, false); - m_non_compressible_data.clear(); + m_non_compressible_data.clear_with_capacity(); } } @@ -131,9 +140,7 @@ void NonCompressibleBlock::add_block_to_chunk(PNGChunk& png_chunk, bool last) png_chunk.add_as_little_endian(len); png_chunk.add_as_little_endian(nlen); - for (auto non_compressed_byte : m_non_compressible_data) { - png_chunk.add_u8(non_compressed_byte); - } + png_chunk.add(m_non_compressible_data.data(), m_non_compressible_data.size()); } void NonCompressibleBlock::finalize(PNGChunk& chunk)