Browse Source

Explicitly control lifetime of memory owner

pull/1918/head
Ynse Hoornenborg 4 years ago
parent
commit
c05fd216d1
  1. 15
      src/ImageSharp/Formats/Png/PngEncoderCore.cs

15
src/ImageSharp/Formats/Png/PngEncoderCore.cs

@ -680,12 +680,15 @@ namespace SixLabors.ImageSharp.Formats.Png
return; return;
} }
using IMemoryOwner<byte> owner = this.memoryAllocator.Allocate<byte>(xmpData.Length + PngConstants.XmpKeyword.Length + 5); int payloadLength = xmpData.Length + PngConstants.XmpKeyword.Length + 5;
Span<byte> payload = owner.GetSpan(); using (IMemoryOwner<byte> owner = this.memoryAllocator.Allocate<byte>(payloadLength))
PngConstants.XmpKeyword.CopyTo(payload); {
int bytesWritten = PngConstants.XmpKeyword.Length + iTxtHeaderSize; Span<byte> payload = owner.GetSpan();
xmpData.CopyTo(payload.Slice(bytesWritten)); PngConstants.XmpKeyword.CopyTo(payload);
this.WriteChunk(stream, PngChunkType.InternationalText, payload); int bytesWritten = PngConstants.XmpKeyword.Length + iTxtHeaderSize;
xmpData.CopyTo(payload.Slice(bytesWritten));
this.WriteChunk(stream, PngChunkType.InternationalText, payload);
}
} }
/// <summary> /// <summary>

Loading…
Cancel
Save