Skip to content

Commit 9446fbe

Browse files
committed
Removed caching of code modules from ProjectsRepository because it caused bugs on the VBE side.
1 parent d097243 commit 9446fbe

File tree

3 files changed

+0
-1083
lines changed

3 files changed

+0
-1083
lines changed

Rubberduck.VBEEditor/ComManagement/IProjectsProvider.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,5 @@ public interface IProjectsProvider : IDisposable
1313
IEnumerable<(QualifiedModuleName QualifiedModuleName, IVBComponent Component)> Components();
1414
IEnumerable<(QualifiedModuleName QualifiedModuleName, IVBComponent Component)> Components(string projectId);
1515
IVBComponent Component(QualifiedModuleName qualifiedModuleName);
16-
IEnumerable<(QualifiedModuleName QualifiedModuleName, ICodeModule CodeModule)> CodeModules();
17-
IEnumerable<(QualifiedModuleName QualifiedModuleName, ICodeModule CodeModule)> CodeModules(string projectId);
18-
ICodeModule CodeModule(QualifiedModuleName qualifiedModuleName);
1916
}
2017
}

Rubberduck.VBEEditor/ComManagement/ProjectsRepository.cs

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ public class ProjectsRepository : IProjectsRepository
1414
private readonly IDictionary<string, IVBProject> _projects = new Dictionary<string, IVBProject>();
1515
private readonly IDictionary<string, IVBComponents> _componentsCollections = new Dictionary<string, IVBComponents>();
1616
private readonly IDictionary<QualifiedModuleName, IVBComponent> _components = new Dictionary<QualifiedModuleName, IVBComponent>();
17-
private readonly IDictionary<QualifiedModuleName, ICodeModule> _codeModules = new Dictionary<QualifiedModuleName, ICodeModule>();
1817

1918
private readonly ReaderWriterLockSlim _refreshProtectionLock = new ReaderWriterLockSlim(LockRecursionPolicy.NoRecursion);
2019

@@ -75,7 +74,6 @@ private void LoadComponents(IVBComponents componentsCollection)
7574
{
7675
var qmn = component.QualifiedModuleName;
7776
_components.Add(qmn, component);
78-
_codeModules.Add(qmn, component.CodeModule);
7977
}
8078
}
8179

@@ -114,14 +112,12 @@ private void RefreshCollections()
114112
var projects = ClearComWrapperDictionary(_projects);
115113
var componentCollections = ClearComWrapperDictionary(_componentsCollections);
116114
var components = ClearComWrapperDictionary(_components);
117-
var codeModules = ClearComWrapperDictionary(_codeModules);
118115

119116
LoadCollections();
120117

121118
DisposeWrapperEnumerable(projects);
122119
DisposeWrapperEnumerable(componentCollections);
123120
DisposeWrapperEnumerable(components);
124-
DisposeWrapperEnumerable(codeModules);
125121
}
126122

127123
private IEnumerable<TWrapper> ClearComWrapperDictionary<TKey, TWrapper>(IDictionary<TKey, TWrapper> dictionary)
@@ -150,20 +146,17 @@ private void RefreshCollections(string projectId)
150146

151147
var componentsCollection = _componentsCollections[projectId];
152148
var components = _components.Where(kvp => kvp.Key.ProjectId.Equals(projectId)).ToList();
153-
var codeModules = _codeModules.Where(kvp => kvp.Key.ProjectId.Equals(projectId)).ToList();
154149

155150
foreach (var qmn in components.Select(kvp => kvp.Key))
156151
{
157152
_components.Remove(qmn);
158-
_codeModules.Remove(qmn);
159153
}
160154

161155
_componentsCollections[projectId] = project.VBComponents;
162156
LoadComponents(_componentsCollections[projectId]);
163157

164158
componentsCollection.Dispose();
165159
DisposeWrapperEnumerable(components.Select(kvp => kvp.Value));
166-
DisposeWrapperEnumerable(codeModules.Select(kvp => kvp.Value));
167160
}
168161

169162
public void Refresh(string projectId)
@@ -242,24 +235,6 @@ public IVBComponent Component(QualifiedModuleName qualifiedModuleName)
242235
return EvaluateWithinReadLock(() => _components.TryGetValue(qualifiedModuleName, out var component) ? component : null);
243236
}
244237

245-
public IEnumerable<(QualifiedModuleName QualifiedModuleName, ICodeModule CodeModule)> CodeModules()
246-
{
247-
return EvaluateWithinReadLock(() => _codeModules.Select(kvp => (kvp.Key, kvp.Value)).ToList()) ?? new List<(QualifiedModuleName, ICodeModule)>();
248-
}
249-
250-
public IEnumerable<(QualifiedModuleName QualifiedModuleName, ICodeModule CodeModule)> CodeModules(string projectId)
251-
{
252-
return EvaluateWithinReadLock(() => _codeModules.Where(kvp => kvp.Key.ProjectId.Equals(projectId))
253-
.Select(kvp => (kvp.Key, kvp.Value))
254-
.ToList())
255-
?? new List<(QualifiedModuleName, ICodeModule)>();
256-
}
257-
258-
public ICodeModule CodeModule(QualifiedModuleName qualifiedModuleName)
259-
{
260-
return EvaluateWithinReadLock(() => _codeModules.TryGetValue(qualifiedModuleName, out var codeModule) ? codeModule : null);
261-
}
262-
263238
private bool _disposed;
264239
public void Dispose()
265240
{
@@ -283,12 +258,10 @@ private void ClearCollections()
283258
var projects = ClearComWrapperDictionary(_projects);
284259
var componentCollections = ClearComWrapperDictionary(_componentsCollections);
285260
var components = ClearComWrapperDictionary(_components);
286-
var codeModules = ClearComWrapperDictionary(_codeModules);
287261

288262
DisposeWrapperEnumerable(projects);
289263
DisposeWrapperEnumerable(componentCollections);
290264
DisposeWrapperEnumerable(components);
291-
DisposeWrapperEnumerable(codeModules);
292265
}
293266
}
294267
}

0 commit comments

Comments
 (0)