diff --git a/src/SharpCompress/Compressors/BZip2/BZip2Stream.Async.cs b/src/SharpCompress/Compressors/BZip2/BZip2Stream.Async.cs index 121a63f6..c9b0b031 100644 --- a/src/SharpCompress/Compressors/BZip2/BZip2Stream.Async.cs +++ b/src/SharpCompress/Compressors/BZip2/BZip2Stream.Async.cs @@ -23,8 +23,7 @@ public sealed partial class BZip2Stream CancellationToken cancellationToken = default ) { - var bZip2Stream = new BZip2Stream(); - bZip2Stream.leaveOpen = leaveOpen; + var bZip2Stream = new BZip2Stream(leaveOpen); bZip2Stream.Mode = compressionMode; if (bZip2Stream.Mode == CompressionMode.Compress) { @@ -35,6 +34,7 @@ public sealed partial class BZip2Stream bZip2Stream.stream = await CBZip2InputStream.CreateAsync( stream, decompressConcatenated, + leaveOpen, cancellationToken ); } diff --git a/src/SharpCompress/Compressors/BZip2/BZip2Stream.cs b/src/SharpCompress/Compressors/BZip2/BZip2Stream.cs index 813f68d9..0aa690f6 100644 --- a/src/SharpCompress/Compressors/BZip2/BZip2Stream.cs +++ b/src/SharpCompress/Compressors/BZip2/BZip2Stream.cs @@ -10,9 +10,12 @@ public sealed partial class BZip2Stream : Stream { private Stream stream = default!; private bool isDisposed; - private bool leaveOpen; + private readonly bool leaveOpen; - private BZip2Stream() { } + private BZip2Stream(bool leaveOpen) + { + this.leaveOpen = leaveOpen; + } /// /// Create a BZip2Stream @@ -27,8 +30,7 @@ public sealed partial class BZip2Stream : Stream bool leaveOpen = false ) { - var bZip2Stream = new BZip2Stream(); - bZip2Stream.leaveOpen = leaveOpen; + var bZip2Stream = new BZip2Stream(leaveOpen); bZip2Stream.Mode = compressionMode; if (bZip2Stream.Mode == CompressionMode.Compress) { diff --git a/src/SharpCompress/Compressors/BZip2/CBZip2InputStream.Async.cs b/src/SharpCompress/Compressors/BZip2/CBZip2InputStream.Async.cs index 7252a802..6a5992e8 100644 --- a/src/SharpCompress/Compressors/BZip2/CBZip2InputStream.Async.cs +++ b/src/SharpCompress/Compressors/BZip2/CBZip2InputStream.Async.cs @@ -857,11 +857,11 @@ internal partial class CBZip2InputStream public static async ValueTask CreateAsync( Stream zStream, bool decompressConcatenated, + bool leaveOpen = false, CancellationToken cancellationToken = default ) { - var cbZip2InputStream = new CBZip2InputStream(); - cbZip2InputStream.decompressConcatenated = decompressConcatenated; + var cbZip2InputStream = new CBZip2InputStream(decompressConcatenated, leaveOpen); cbZip2InputStream.ll8 = null; cbZip2InputStream.tt = null; await cbZip2InputStream.BsSetStreamAsync(zStream, cancellationToken); diff --git a/src/SharpCompress/Compressors/BZip2/CBZip2InputStream.cs b/src/SharpCompress/Compressors/BZip2/CBZip2InputStream.cs index 36f4bee6..2bd0d94a 100644 --- a/src/SharpCompress/Compressors/BZip2/CBZip2InputStream.cs +++ b/src/SharpCompress/Compressors/BZip2/CBZip2InputStream.cs @@ -147,8 +147,8 @@ internal partial class CBZip2InputStream : Stream storedCombinedCRC; private int computedBlockCRC, computedCombinedCRC; - private bool decompressConcatenated; - private bool leaveOpen; + private readonly bool decompressConcatenated; + private readonly bool leaveOpen; private int i2, count, @@ -162,7 +162,11 @@ internal partial class CBZip2InputStream : Stream private char z; private bool isDisposed; - private CBZip2InputStream() { } + private CBZip2InputStream(bool decompressConcatenated, bool leaveOpen) + { + this.decompressConcatenated = decompressConcatenated; + this.leaveOpen = leaveOpen; + } public static CBZip2InputStream Create( Stream zStream, @@ -170,9 +174,7 @@ internal partial class CBZip2InputStream : Stream bool leaveOpen ) { - var cbZip2InputStream = new CBZip2InputStream(); - cbZip2InputStream.decompressConcatenated = decompressConcatenated; - cbZip2InputStream.leaveOpen = leaveOpen; + var cbZip2InputStream = new CBZip2InputStream(decompressConcatenated, leaveOpen); cbZip2InputStream.ll8 = null; cbZip2InputStream.tt = null; cbZip2InputStream.BsSetStream(zStream); diff --git a/src/SharpCompress/IO/AsyncBinaryReader.cs b/src/SharpCompress/IO/AsyncBinaryReader.cs index 55cb6aa9..9fef056a 100644 --- a/src/SharpCompress/IO/AsyncBinaryReader.cs +++ b/src/SharpCompress/IO/AsyncBinaryReader.cs @@ -8,7 +8,7 @@ namespace SharpCompress.IO; public sealed class AsyncBinaryReader : IDisposable #if NET8_0_OR_GREATER -, IAsyncDisposable + , IAsyncDisposable #endif { private readonly Stream _stream;