Browse Source

Fixed SD2-543: NullReference Exception thrown when viewing VB project properties

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@713 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 20 years ago
parent
commit
b36d72b6b5
  1. 1
      src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/SolutionNodeCommands.cs
  2. 19
      src/Main/Base/Project/Src/Services/ParserService/ParserService.cs

1
src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/SolutionNodeCommands.cs

@ -56,6 +56,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands @@ -56,6 +56,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands
newProject.IdGuid = "{" + Guid.NewGuid().ToString() + "}";
}
newProject.Location = FileUtility.GetRelativePath(solutionFolderNode.Solution.Directory, fileName);
ParserService.CreateProjectContentForAddedProject(newProject);
solutionFolderNode.Container.AddFolder(newProject);
NodeBuilders.AddProjectNode((TreeNode)solutionFolderNode, newProject).EnsureVisible();
}

19
src/Main/Base/Project/Src/Services/ParserService/ParserService.cs

@ -86,7 +86,7 @@ namespace ICSharpCode.Core @@ -86,7 +86,7 @@ namespace ICSharpCode.Core
static Thread loadSolutionProjectsThread;
static bool abortLoadSolutionProjectsThread;
// do not use an event for this because a solution might be loaded fore ParserService
// do not use an event for this because a solution might be loaded before ParserService
// is initialized
internal static void OnSolutionLoaded()
{
@ -155,6 +155,23 @@ namespace ICSharpCode.Core @@ -155,6 +155,23 @@ namespace ICSharpCode.Core
StatusBarService.ProgressMonitor.Done();
}
static void InitAddedProject(object state)
{
ParseProjectContent newContent = (ParseProjectContent)state;
newContent.Initialize1();
newContent.Initialize2();
}
public static IProjectContent CreateProjectContentForAddedProject(IProject project)
{
lock (projectContents) {
ParseProjectContent newContent = project.CreateProjectContent();
projectContents[project] = newContent;
ThreadPool.QueueUserWorkItem(InitAddedProject, newContent);
return newContent;
}
}
public static IProjectContent GetProjectContent(IProject project)
{
if (projectContents.ContainsKey(project)) {

Loading…
Cancel
Save