Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ DisposeAsync()

override ValueTask System.IO.Compression.DeflateStream.DisposeAsync ( )
inlinevirtual

Reimplemented from System.IO.Stream.

Definition at line 772 of file DeflateStream.cs.

773 {
774 if (!(GetType() == typeof(DeflateStream)))
775 {
776 return base.DisposeAsync();
777 }
778 return Core();
779 async ValueTask Core()
780 {
781 try
782 {
783 await PurgeBuffersAsync().ConfigureAwait(continueOnCapturedContext: false);
784 }
785 finally
786 {
788 _stream = null;
789 try
790 {
791 if (!_leaveOpen && stream != null)
792 {
793 await stream.DisposeAsync().ConfigureAwait(continueOnCapturedContext: false);
794 }
795 }
796 finally
797 {
798 try
799 {
802 }
803 finally
804 {
805 _deflater = null;
806 _inflater = null;
807 byte[] buffer = _buffer;
808 if (buffer != null)
809 {
810 _buffer = null;
812 {
814 }
815 }
816 }
817 }
818 }
819 }
820 }
static ArrayPool< T > Shared
Definition ArrayPool.cs:7
DeflateStream(Stream stream, CompressionMode mode, long uncompressedSize)
void Dispose(bool disposing)
Definition Inflater.cs:174
virtual ValueTask DisposeAsync()
Definition Stream.cs:654
ConfiguredValueTaskAwaitable ConfigureAwait(bool continueOnCapturedContext)
Definition ValueTask.cs:312

References System.IO.Compression.DeflateStream._buffer, System.IO.Compression.DeflateStream._deflater, System.IO.Compression.DeflateStream._inflater, System.IO.Compression.DeflateStream._leaveOpen, System.IO.Compression.DeflateStream._stream, System.IO.Compression.DeflateStream.AsyncOperationIsActive, System.buffer, System.Threading.Tasks.ValueTask< TResult >.ConfigureAwait(), System.IO.Compression.Deflater.Dispose(), System.IO.Compression.Inflater.Dispose(), System.IO.Stream.DisposeAsync(), System.IO.Compression.DeflateStream.PurgeBuffersAsync(), System.Buffers.ArrayPool< T >.Shared, and System.stream.

Referenced by System.IO.Compression.GZipStream.DisposeAsync(), and System.IO.Compression.ZLibStream.DisposeAsync().