diff --git a/Terminal.Gui/Core/Responder.cs b/Terminal.Gui/Core/Responder.cs index 7f43bb17a..2a2d0128e 100644 --- a/Terminal.Gui/Core/Responder.cs +++ b/Terminal.Gui/Core/Responder.cs @@ -24,7 +24,7 @@ namespace Terminal.Gui { public class Responder : IDisposable { bool disposedValue; -#if DEBUG +#if DEBUG_IDISPOSABLE /// /// For debug purposes to verify objects are being disposed properly /// @@ -41,7 +41,7 @@ namespace Terminal.Gui { { Instances.Add (this); } -#endif +#endif /// /// Gets or sets a value indicating whether this can focus. @@ -240,6 +240,11 @@ namespace Terminal.Gui { // Do not change this code. Put cleanup code in 'Dispose(bool disposing)' method Dispose (disposing: true); GC.SuppressFinalize (this); +#if DEBUG_IDISPOSABLE + WasDisposed = true; + Debug.Assert (DisposedCount == 0); + DisposedCount++; +#endif } } } diff --git a/UnitTests/ScenarioTests.cs b/UnitTests/ScenarioTests.cs index c6d6723ce..4524c8d5e 100644 --- a/UnitTests/ScenarioTests.cs +++ b/UnitTests/ScenarioTests.cs @@ -71,6 +71,11 @@ namespace Terminal.Gui { Assert.Equal (1, iterations); Assert.Equal (stackSize, iterations); } +#if DEBUG_IDISPOSABLE + foreach (var inst in Responder.Instances) { + Assert.True (inst.WasDisposed); + } +#endif } [Fact] @@ -120,7 +125,7 @@ namespace Terminal.Gui { //Assert.Equal (1, iterations); Assert.Equal (stackSize, iterations); -#if DEBUG +#if DEBUG_IDISPOSABLE foreach (var inst in Responder.Instances) { Assert.True (inst.WasDisposed); }