提交 d2c488a9 编写于 作者: T Tom Meschter 提交者: GitHub

Merge pull request #19272 from tmeschter/FixMemoryLeakInBatching

Fix a small memory leak related to batching project loads
......@@ -40,6 +40,13 @@ internal sealed partial class VisualStudioProjectTracker : ForegroundThreadAffin
private readonly HostWorkspaceServices _workspaceServices;
/// <summary>
/// Set to true while we're batching project loads. That is, between
/// <see cref="IVsSolutionLoadEvents.OnBeforeLoadProjectBatch" /> and
/// <see cref="IVsSolutionLoadEvents.OnAfterLoadProjectBatch"/>.
/// </summary>
private bool _batchingProjectLoads = false;
/// <summary>
/// The list of projects loaded in this batch between <see cref="IVsSolutionLoadEvents.OnBeforeLoadProjectBatch" /> and
/// <see cref="IVsSolutionLoadEvents.OnAfterLoadProjectBatch(bool)"/>.
......@@ -282,7 +289,7 @@ internal void AddProject(AbstractProject project)
{
StartPushingToWorkspaceAndNotifyOfOpenDocuments(SpecializedCollections.SingletonEnumerable(project));
}
else
else if (_batchingProjectLoads)
{
_projectsLoadedThisBatch.Add(project);
}
......@@ -916,6 +923,7 @@ internal void OnBeforeLoadProjectBatch(bool fIsBackgroundIdleBatch)
{
AssertIsForeground();
_batchingProjectLoads = true;
_projectsLoadedThisBatch.Clear();
}
......@@ -930,6 +938,7 @@ internal void OnAfterLoadProjectBatch(bool fIsBackgroundIdleBatch)
StartPushingToWorkspaceAndNotifyOfOpenDocuments(_projectsLoadedThisBatch);
}
_batchingProjectLoads = false;
_projectsLoadedThisBatch.Clear();
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册