Manage corner cases during the save phase. Nits.

This commit is contained in:
LDj3SNuD 2019-09-21 13:17:51 +02:00 committed by GitHub
commit 22037ad131
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -112,10 +112,7 @@ namespace ARMeilleure.Translation.AOT
try try
{ {
using (deflateStream) using (deflateStream) deflateStream.CopyTo(cacheStream);
{
deflateStream.CopyTo(cacheStream);
}
cacheStream.Seek(0L, SeekOrigin.Begin); cacheStream.Seek(0L, SeekOrigin.Begin);
@ -229,6 +226,8 @@ namespace ARMeilleure.Translation.AOT
using (FileStream compressedCacheStream = new FileStream(cachePath, FileMode.OpenOrCreate)) using (FileStream compressedCacheStream = new FileStream(cachePath, FileMode.OpenOrCreate))
{ {
DeflateStream deflateStream = new DeflateStream(compressedCacheStream, SaveCompressionLevel, true);
MemoryStream cacheStream = new MemoryStream(); MemoryStream cacheStream = new MemoryStream();
MD5 md5 = MD5.Create(); MD5 md5 = MD5.Create();
@ -261,12 +260,16 @@ namespace ARMeilleure.Translation.AOT
cacheStream.Seek(0L, SeekOrigin.Begin); cacheStream.Seek(0L, SeekOrigin.Begin);
cacheStream.Write(hash, 0, hashSize); cacheStream.Write(hash, 0, hashSize);
using (DeflateStream deflateStream = new DeflateStream(compressedCacheStream, SaveCompressionLevel, true)) try
{ {
cacheStream.WriteTo(deflateStream); using (deflateStream) cacheStream.WriteTo(deflateStream);
}
catch
{
compressedCacheStream.Position = 0L;
} }
if (compressedCacheStream.Length > compressedCacheStream.Position) if (compressedCacheStream.Position < compressedCacheStream.Length)
{ {
compressedCacheStream.SetLength(compressedCacheStream.Position); compressedCacheStream.SetLength(compressedCacheStream.Position);
} }