2 files changed, 25 insertions, 5 deletions
diff --git a/crypto/bzip2/src/CBZip2InputStream.cs b/crypto/bzip2/src/CBZip2InputStream.cs
index 7efb3b3ab..82ff83e42 100644
--- a/crypto/bzip2/src/CBZip2InputStream.cs
+++ b/crypto/bzip2/src/CBZip2InputStream.cs
@@ -25,6 +25,8 @@
using System;
using System.IO;
+using Org.BouncyCastle.Utilities;
+
namespace Org.BouncyCastle.Apache.Bzip2
{
/**
@@ -286,10 +288,10 @@ namespace Org.BouncyCastle.Apache.Bzip2
Cadvise();
}
- private void BsFinishedWithStream() {
+ private void BsFinishedWithStream() {
try {
if (this.bsStream != null) {
- this.bsStream.Close();
+ Platform.Dispose(this.bsStream);
this.bsStream = null;
}
} catch {
diff --git a/crypto/bzip2/src/CBZip2OutputStream.cs b/crypto/bzip2/src/CBZip2OutputStream.cs
index bf43a6a6c..ffac073fb 100644
--- a/crypto/bzip2/src/CBZip2OutputStream.cs
+++ b/crypto/bzip2/src/CBZip2OutputStream.cs
@@ -25,6 +25,8 @@
using System;
using System.IO;
+using Org.BouncyCastle.Utilities;
+
namespace Org.BouncyCastle.Apache.Bzip2
{
/**
@@ -384,17 +386,33 @@ namespace Org.BouncyCastle.Apache.Bzip2
// Close();
// }
+#if PORTABLE
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing)
+ {
+ if (closed)
+ return;
+
+ Finish();
+ closed = true;
+ Platform.Dispose(this.bsStream);
+ }
+ base.Dispose(disposing);
+ }
+#else
public override void Close() {
- if (closed) {
+ if (closed)
return;
- }
Finish();
closed = true;
+ Platform.Dispose(this.bsStream);
+
base.Close();
- bsStream.Close();
}
+#endif
public void Finish() {
if (finished) {
|