From 20c1137669af015df1fe6fef38ce7d0739a4a250 Mon Sep 17 00:00:00 2001 From: morkt Date: Wed, 9 Mar 2016 11:11:17 +0400 Subject: [PATCH] (BigEndianReader): refined implementation. --- ArcFormats/Cri/BigEndianReader.cs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/ArcFormats/Cri/BigEndianReader.cs b/ArcFormats/Cri/BigEndianReader.cs index 27bbc8a7..074c61e9 100644 --- a/ArcFormats/Cri/BigEndianReader.cs +++ b/ArcFormats/Cri/BigEndianReader.cs @@ -41,9 +41,10 @@ namespace GameRes.Formats.Cri set { m_input.BaseStream.Position = value; } } - public BigEndianReader(Stream input) + public Stream BaseStream { get { return m_input.BaseStream; } } + + public BigEndianReader (Stream input) : this (input, Encoding.UTF8, false) { - m_input = new BinaryReader (input, Encoding.UTF8, false); } public BigEndianReader (Stream input, Encoding enc, bool leave_open = false) @@ -113,10 +114,17 @@ namespace GameRes.Formats.Cri #region IDisposable Members bool _disposed = false; public void Dispose () + { + Dispose (true); + GC.SuppressFinalize (this); + } + + protected virtual void Dispose (bool disposing) { if (!_disposed) { - m_input.Dispose(); + if (disposing) + m_input.Dispose(); _disposed = true; } }