(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

@@ -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)