(ZLibStream): dispose of supplied stream in case of initialization errors.

This commit is contained in:
morkt 2015-09-03 07:05:55 +04:00
parent 81ab95ebf1
commit 40c280a23c
2 changed files with 16 additions and 7 deletions

View File

@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers // You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below: // by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion ("1.1.10.423")] [assembly: AssemblyVersion ("1.1.10.427")]
[assembly: AssemblyFileVersion ("1.1.10.423")] [assembly: AssemblyFileVersion ("1.1.10.427")]

View File

@ -79,11 +79,20 @@ namespace GameRes.Compression
public ZLibStream (Stream stream, CompressionMode mode, CompressionLevel level, bool leave_open = false) public ZLibStream (Stream stream, CompressionMode mode, CompressionLevel level, bool leave_open = false)
{ {
if (CompressionMode.Decompress == mode) try
InitDecompress (stream); {
else if (CompressionMode.Decompress == mode)
InitCompress (stream, level); InitDecompress (stream);
m_should_dispose_base = !leave_open; else
InitCompress (stream, level);
m_should_dispose_base = !leave_open;
}
catch
{
if (!leave_open)
stream.Dispose();
throw;
}
} }
private void InitDecompress (Stream stream) private void InitDecompress (Stream stream)