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;
|