From 49d86e1b31f51664f8f0425879a82d8fd11aa07c Mon Sep 17 00:00:00 2001 From: Brian Popow Date: Mon, 16 Aug 2021 17:40:39 +0200 Subject: [PATCH] Use buffer as span to reduce some bound checks when writing components --- src/ImageSharp/Formats/Jpeg/JpegEncoderCore.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/ImageSharp/Formats/Jpeg/JpegEncoderCore.cs b/src/ImageSharp/Formats/Jpeg/JpegEncoderCore.cs index b7a3680064..ad05b298be 100644 --- a/src/ImageSharp/Formats/Jpeg/JpegEncoderCore.cs +++ b/src/ImageSharp/Formats/Jpeg/JpegEncoderCore.cs @@ -642,9 +642,10 @@ namespace SixLabors.ImageSharp.Formats.Jpeg int i3 = 3 * i; // Component ID. - this.buffer[i3 + 6] = componentIds[i]; - this.buffer[i3 + 7] = subsamples[i]; - this.buffer[i3 + 8] = chroma[i]; + Span bufferSpan = this.buffer.AsSpan(i3 + 6, 3); + bufferSpan[2] = chroma[i]; + bufferSpan[1] = subsamples[i]; + bufferSpan[0] = componentIds[i]; } this.outputStream.Write(this.buffer, 0, (3 * (componentCount - 1)) + 9);