public static void Release(ITextBuffer textBuffer, TextSnapshotTeXCommentBlocks blocks) { lock (Cache) { if (!Cache.TryGetValue(textBuffer, out CachedItem item) || item.Blocks != blocks) { throw new InvalidOperationException("Releasing of invalid blocks."); } if (--item.Counter == 0) { Cache.Remove(textBuffer); } } }
public CachedItem(TextSnapshotTeXCommentBlocks blocks) { Blocks = blocks; Counter = 1; }