Procházet zdrojové kódy

LibGfx: Use clear_with capacity instead of clear in PNGWriter

Same vector was cleared up and filled in continuously.
Aziz Berkay Yesilyurt před 4 roky
rodič
revize
d1028f8aed
1 změnil soubory, kde provedl 11 přidání a 4 odebrání
  1. 11 4
      Userland/Libraries/LibGfx/PNGWriter.cpp

+ 11 - 4
Userland/Libraries/LibGfx/PNGWriter.cpp

@@ -31,6 +31,9 @@ public:
 
     void add_u8(u8);
 
+    template<typename T>
+    void add(T*, size_t);
+
     void store_type();
     void store_data_length();
     u32 crc();
@@ -92,6 +95,12 @@ requires(IsUnsigned<T>) void PNGChunk::add(T data)
     m_data.append(&data, sizeof(T));
 }
 
+template<typename T>
+void PNGChunk::add(T* data, size_t size)
+{
+    m_data.append(data, size);
+}
+
 template<typename T>
 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)