diff options
author | wuestholz <unknown> | 2013-05-27 14:44:45 -0700 |
---|---|---|
committer | wuestholz <unknown> | 2013-05-27 14:44:45 -0700 |
commit | 424c8820500e281b9eca07322183877601de7562 (patch) | |
tree | c3f1d52e3e8d67ed9bcf6b3d85af7001d257bd25 /Source/DafnyExtension/ProgressMargin.cs | |
parent | ef3ccef52b432a7d5c8c7db2add8102bd281b58c (diff) |
DafnyExtension: Fixed an issue (error list wasn't cleared after closing buffers).
Diffstat (limited to 'Source/DafnyExtension/ProgressMargin.cs')
-rw-r--r-- | Source/DafnyExtension/ProgressMargin.cs | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/Source/DafnyExtension/ProgressMargin.cs b/Source/DafnyExtension/ProgressMargin.cs index edaa5019..f5faf697 100644 --- a/Source/DafnyExtension/ProgressMargin.cs +++ b/Source/DafnyExtension/ProgressMargin.cs @@ -110,8 +110,28 @@ namespace DafnyLanguage bufferChangesPostVerificationStart.Add(new SnapshotSpan(buffer.CurrentSnapshot, 0, buffer.CurrentSnapshot.Length));
}
- public void Dispose() {
- _errorProvider.Dispose();
+ public void Dispose()
+ {
+ Dispose(true);
+ GC.SuppressFinalize(this);
+ }
+
+ private void Dispose(bool disposing)
+ {
+ if (!m_disposed)
+ {
+ if (disposing)
+ {
+ _buffer.Changed -= buffer_Changed;
+ _errorProvider.Dispose();
+ if (resolver != null)
+ {
+ resolver.Dispose();
+ }
+ }
+
+ m_disposed = true;
+ }
}
// The following fields and the contents of the following two lists are protected by the lock "this".
@@ -280,6 +300,7 @@ namespace DafnyLanguage }
public event EventHandler<SnapshotSpanEventArgs> TagsChanged;
+ private bool m_disposed;
IEnumerable<ITagSpan<ProgressGlyphTag>> ITagger<ProgressGlyphTag>.GetTags(NormalizedSnapshotSpanCollection spans) {
if (spans.Count == 0) yield break;
var targetSnapshot = spans[0].Snapshot;
|