From f01b69681887414ce67eb38620bd4d09cbe94b34 Mon Sep 17 00:00:00 2001 From: Brian Popow Date: Fri, 24 Mar 2023 17:53:28 +0100 Subject: [PATCH] Dont use using statement for encodedAlphaData. It will now be disposed in a try / finally block. --- .../Formats/Webp/Lossy/Vp8Encoder.cs | 30 ++++++++++++------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/src/ImageSharp/Formats/Webp/Lossy/Vp8Encoder.cs b/src/ImageSharp/Formats/Webp/Lossy/Vp8Encoder.cs index 16b4c827ef..ead636f30c 100644 --- a/src/ImageSharp/Formats/Webp/Lossy/Vp8Encoder.cs +++ b/src/ImageSharp/Formats/Webp/Lossy/Vp8Encoder.cs @@ -349,10 +349,11 @@ internal class Vp8Encoder : IDisposable int alphaDataSize = 0; bool alphaCompressionSucceeded = false; Span alphaData = Span.Empty; + IMemoryOwner encodedAlphaData = null; if (hasAlpha) { // TODO: This can potentially run in an separate task. - using IMemoryOwner encodedAlphaData = AlphaEncoder.EncodeAlpha( + encodedAlphaData = AlphaEncoder.EncodeAlpha( image, this.configuration, this.memoryAllocator, @@ -405,16 +406,23 @@ internal class Vp8Encoder : IDisposable ExifProfile exifProfile = this.skipMetadata ? null : metadata.ExifProfile; XmpProfile xmpProfile = this.skipMetadata ? null : metadata.XmpProfile; - this.bitWriter.WriteEncodedImageToStream( - stream, - exifProfile, - xmpProfile, - metadata.IccProfile, - (uint)width, - (uint)height, - hasAlpha, - alphaData[..alphaDataSize], - this.alphaCompression && alphaCompressionSucceeded); + try + { + this.bitWriter.WriteEncodedImageToStream( + stream, + exifProfile, + xmpProfile, + metadata.IccProfile, + (uint)width, + (uint)height, + hasAlpha, + alphaData[..alphaDataSize], + this.alphaCompression && alphaCompressionSucceeded); + } + finally + { + encodedAlphaData?.Dispose(); + } } ///