From 69f447cad3cbacb45a837520156acf8077f2fd46 Mon Sep 17 00:00:00 2001 From: cincura_net Date: Sat, 11 Oct 2008 16:39:44 +0000 Subject: [PATCH] Work on IDisposable. Fixing DNET-189. --- .../Data/Common/ParameterBuffer.cs | 29 +++++++++++++++++-- .../Data/FirebirdClient/FbRemoteEvent.cs | 3 -- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/NETProvider/source/FirebirdSql/Data/Common/ParameterBuffer.cs b/NETProvider/source/FirebirdSql/Data/Common/ParameterBuffer.cs index b6ef805a..2c594def 100644 --- a/NETProvider/source/FirebirdSql/Data/Common/ParameterBuffer.cs +++ b/NETProvider/source/FirebirdSql/Data/Common/ParameterBuffer.cs @@ -23,12 +23,13 @@ namespace FirebirdSql.Data.Common { - internal abstract class ParameterBuffer + internal abstract class ParameterBuffer : IDisposable { #region · Fields · private MemoryStream stream; - private bool isLittleEndian; + private bool isLittleEndian; + private bool _disposed = false; #endregion @@ -125,5 +126,27 @@ protected void Write(byte[] buffer, int offset, int count) } #endregion - } + + #region IDisposable + + public void Dispose() + { + this.Dispose(true); + } + + private void Dispose(bool disposing) + { + if (!this._disposed) + { + if (disposing) + { + this.stream.Dispose(); + this.stream = null; + } + } + this._disposed = true; + } + + #endregion + } } diff --git a/NETProvider/source/FirebirdSql/Data/FirebirdClient/FbRemoteEvent.cs b/NETProvider/source/FirebirdSql/Data/FirebirdClient/FbRemoteEvent.cs index ba5790ee..2a516201 100644 --- a/NETProvider/source/FirebirdSql/Data/FirebirdClient/FbRemoteEvent.cs +++ b/NETProvider/source/FirebirdSql/Data/FirebirdClient/FbRemoteEvent.cs @@ -215,9 +215,6 @@ private void Dispose(bool disposing) this.connection = null; this.revent = null; } - - // There are no unmanaged resources to release, but - // if we add them, they need to be released here. } this._disposed = true; }