summary refs log tree commit diff
path: root/crypto/src/util/zlib/ZOutputStream.cs
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/src/util/zlib/ZOutputStream.cs')
-rw-r--r--crypto/src/util/zlib/ZOutputStream.cs57
1 files changed, 38 insertions, 19 deletions
diff --git a/crypto/src/util/zlib/ZOutputStream.cs b/crypto/src/util/zlib/ZOutputStream.cs

index 7b49d6638..ca59d8e1f 100644 --- a/crypto/src/util/zlib/ZOutputStream.cs +++ b/crypto/src/util/zlib/ZOutputStream.cs
@@ -95,32 +95,51 @@ namespace Org.BouncyCastle.Utilities.Zlib public sealed override bool CanSeek { get { return false; } } public sealed override bool CanWrite { get { return !closed; } } +#if PORTABLE + protected override void Disposing(bool disposing) + { + if (disposing) + { + if (this.closed) + return; + + DoClose(); + } + base.Dispose(disposing); + } +#else public override void Close() { if (this.closed) return; - try - { - try - { - Finish(); - } - catch (IOException) - { - // Ignore - } - } - finally - { - this.closed = true; - End(); - Platform.Dispose(output); - output = null; - } + DoClose(); } +#endif + + private void DoClose() + { + try + { + try + { + Finish(); + } + catch (IOException) + { + // Ignore + } + } + finally + { + this.closed = true; + End(); + Platform.Dispose(output); + output = null; + } + } - public virtual void End() + public virtual void End() { if (z == null) return;