From f9ade6122e26e68009e1ec18726c4fc0ef33431a Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Wed, 6 Jun 2007 14:21:37 +0000 Subject: [PATCH] Fixed forum-17295: NullReferenceException when right clicking on "MyApplication" module that has one part in user code and one part in compiler generated code. git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/2.1@2540 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- .../TextEditor/Commands/ClassBookmarkMenuBuilder.cs | 12 +++++++++++- src/Main/Core/Project/Src/AddInTree/AddIn/AddIn.cs | 2 +- src/Main/StartUp/Project/SharpDevelopMain.cs | 2 +- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/Main/Base/Project/Src/TextEditor/Commands/ClassBookmarkMenuBuilder.cs b/src/Main/Base/Project/Src/TextEditor/Commands/ClassBookmarkMenuBuilder.cs index 10483a3b09..db66716153 100644 --- a/src/Main/Base/Project/Src/TextEditor/Commands/ClassBookmarkMenuBuilder.cs +++ b/src/Main/Base/Project/Src/TextEditor/Commands/ClassBookmarkMenuBuilder.cs @@ -53,12 +53,22 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands // This should prefer non-designer files over designer files. IClass preferredClass = parts[0]; for (int i = 1; i < parts.Count; i++) { - if (parts[i].CompilationUnit.FileName.Length < preferredClass.CompilationUnit.FileName.Length) + if (IsShorterFileName(parts[i].CompilationUnit.FileName, preferredClass.CompilationUnit.FileName)) preferredClass = parts[i]; } return preferredClass; } + static bool IsShorterFileName(string a, string b) + { + // Fix forum-17295: compilation unit's file name might be null: prefer the non-null file + if (a == null) + return false; + if (b == null) + return true; + return a.Length < b.Length; + } + static IClass GetCurrentPart(IClass possibleCompound) { IWorkbenchWindow window = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow; diff --git a/src/Main/Core/Project/Src/AddInTree/AddIn/AddIn.cs b/src/Main/Core/Project/Src/AddInTree/AddIn/AddIn.cs index f4cd62d91c..c05c1f24ee 100644 --- a/src/Main/Core/Project/Src/AddInTree/AddIn/AddIn.cs +++ b/src/Main/Core/Project/Src/AddInTree/AddIn/AddIn.cs @@ -145,7 +145,7 @@ namespace ICSharpCode.Core get { return enabled; } - internal set { + set { enabled = value; this.Action = value ? AddInAction.Enable : AddInAction.Disable; } diff --git a/src/Main/StartUp/Project/SharpDevelopMain.cs b/src/Main/StartUp/Project/SharpDevelopMain.cs index 30b1f5a838..d685f2a976 100644 --- a/src/Main/StartUp/Project/SharpDevelopMain.cs +++ b/src/Main/StartUp/Project/SharpDevelopMain.cs @@ -72,7 +72,7 @@ namespace ICSharpCode.SharpDevelop // LoggingService requires ICSharpCode.Core.dll and log4net.dll // When a method containing a call to LoggingService is JITted, the // libraries are loaded. - // We want to show the SplashScreen while those libraries are loaded, so + // We want to show the SplashScreen while those libraries are loading, so // don't call LoggingService. #if DEBUG