From d879dd82f0f5e815a0ac92d29d6ecf89154de70f Mon Sep 17 00:00:00 2001 From: Ynse Hoornenborg Date: Sun, 9 Jan 2022 16:06:33 +0100 Subject: [PATCH] Another allocation optimization --- src/ImageSharp/Formats/Png/PngEncoderCore.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/ImageSharp/Formats/Png/PngEncoderCore.cs b/src/ImageSharp/Formats/Png/PngEncoderCore.cs index cc51d78ec9..a0f86fd33e 100644 --- a/src/ImageSharp/Formats/Png/PngEncoderCore.cs +++ b/src/ImageSharp/Formats/Png/PngEncoderCore.cs @@ -680,10 +680,11 @@ namespace SixLabors.ImageSharp.Formats.Png return; } - byte[] payload = new byte[xmpData.Length + PngConstants.XmpKeyword.Length + 5]; + using IMemoryOwner owner = this.memoryAllocator.Allocate(xmpData.Length + PngConstants.XmpKeyword.Length + 5); + Span payload = owner.GetSpan(); PngConstants.XmpKeyword.CopyTo(payload); int bytesWritten = PngConstants.XmpKeyword.Length + iTxtHeaderSize; - xmpData.CopyTo(payload.AsSpan(bytesWritten)); + xmpData.CopyTo(payload.Slice(bytesWritten)); this.WriteChunk(stream, PngChunkType.InternationalText, payload); }