diff --git a/src/SharpCompress/IO/BufferedSubStream.cs b/src/SharpCompress/IO/BufferedSubStream.cs index f9216216..f5232aed 100755 --- a/src/SharpCompress/IO/BufferedSubStream.cs +++ b/src/SharpCompress/IO/BufferedSubStream.cs @@ -1,4 +1,5 @@ using System; +using System.Buffers; using System.IO; using System.Threading; using System.Threading.Tasks; @@ -28,13 +29,16 @@ internal class BufferedSubStream : SharpCompressStream, IStreamStack #if DEBUG_STREAMS this.DebugDispose(typeof(BufferedSubStream)); #endif - if (disposing) { } + if (disposing) + { + ArrayPool.Shared.Return(_cache); + } base.Dispose(disposing); } private int _cacheOffset; private int _cacheLength; - private readonly byte[] _cache = new byte[32 << 10]; + private readonly byte[] _cache = ArrayPool.Shared.Rent(32 << 10); private long origin; private long BytesLeftToRead { get; set; } diff --git a/src/SharpCompress/IO/SharpCompressStream.cs b/src/SharpCompress/IO/SharpCompressStream.cs index 8261505f..948fdb57 100644 --- a/src/SharpCompress/IO/SharpCompressStream.cs +++ b/src/SharpCompress/IO/SharpCompressStream.cs @@ -1,8 +1,6 @@ using System; using System.Buffers; -using System.Diagnostics; using System.IO; -using System.Text; using System.Threading; using System.Threading.Tasks;