(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
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion ("1.1.10.423")]
[assembly: AssemblyFileVersion ("1.1.10.423")]
[assembly: AssemblyVersion ("1.1.10.427")]
[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)
{
if (CompressionMode.Decompress == mode)
InitDecompress (stream);
else
InitCompress (stream, level);
m_should_dispose_base = !leave_open;
try
{
if (CompressionMode.Decompress == mode)
InitDecompress (stream);
else
InitCompress (stream, level);
m_should_dispose_base = !leave_open;
}
catch
{
if (!leave_open)
stream.Dispose();
throw;
}
}
private void InitDecompress (Stream stream)