NullReferenceException in UpdateOutlining function

SyntaxEditor for Windows Forms Forum

Posted 17 years ago by Adam Dickinson
Version: 4.0.0252
Platform: .NET 2.0
Environment: Windows XP (32-bit)
Avatar
I've run across a bug when switching from Manual Outlining mode to Automatic Outlining. The following repro instructions may seem a bit precise, but the bug doesn't happen when I randomly create Manual Outlining nodes. I had to hunt for these exact steps. In the Test Application's SDI Editor.

1) Using the Outlining menu to Stop Outlining.
2) Select the text "/// <summary>" on line 16. Don't include the white space at the start or end of the line.
3) Use the Outlining menu to Hide Selection.
4) Select the text for the function Double, starting with "public" on line 21 and ending with the closing brace on line 26. Again, don't select the whitespace before and after the function block.
5) Use the Outlining menu to Hide Selection.
6) Use the Outlining menu to Start Automatic Outlining.

Callstack:

> ActiproSoftware.SyntaxEditor.Net20.dll!ActiproSoftware.SyntaxEditor.CollapsibleNodeOutliningParser.UpdateOutlining(ActiproSoftware.SyntaxEditor.Document document = {ActiproSoftware.SyntaxEditor.Document}, ActiproSoftware.SyntaxEditor.TextRange parseTextRange = {StartOffset=0,EndOffset=1511}) + 0xf1d bytes
ActiproSoftware.SyntaxEditor.Net20.dll!ActiproSoftware.SyntaxEditor.CollapsibleNodeOutliningParser.UpdateOutlining(ActiproSoftware.SyntaxEditor.Document document = {ActiproSoftware.SyntaxEditor.Document}, ActiproSoftware.SyntaxEditor.TextRange parseTextRange = {StartOffset=0,EndOffset=1511}, ActiproSoftware.SyntaxEditor.IAstNode node = {[47-1511] CompilationUnit}) + 0x45 bytes
ActiproSoftware.SyntaxEditor.Addons.DotNet.Net20.dll!ActiproSoftware.SyntaxEditor.Addons.DotNet.Dom.DotNetSyntaxLanguage.PerformAutomaticOutlining(ActiproSoftware.SyntaxEditor.Document document = {ActiproSoftware.SyntaxEditor.Document}, ActiproSoftware.SyntaxEditor.TextRange parseTextRange = {StartOffset=0,EndOffset=1511}) + 0x80 bytes
ActiproSoftware.SyntaxEditor.Net20.dll!ActiproSoftware.SyntaxEditor.Document.a(ActiproSoftware.SyntaxEditor.TextRange A_0 = {StartOffset=0,EndOffset=1511}, ActiproSoftware.SyntaxEditor.AutomaticOutliningBehavior A_1 = SemanticParseDataChange, ActiproSoftware.SyntaxEditor.DocumentModification A_2 = null, bool A_3 = true) + 0x72 bytes
ActiproSoftware.SyntaxEditor.Net20.dll!ActiproSoftware.SyntaxEditor.Document.a(ActiproSoftware.SyntaxEditor.ISemanticParseData A_0 = {[47-1511] CompilationUnit}, ActiproSoftware.SyntaxEditor.TextRange A_1 = {StartOffset=0,EndOffset=1511}, bool A_2 = true, object A_3 = {object}) + 0x15a bytes
ActiproSoftware.SyntaxEditor.Net20.dll!ActiproSoftware.SyntaxEditor.Document.ActiproSoftware.SyntaxEditor.ISemanticParseDataTarget.NotifySemanticParseComplete(ActiproSoftware.SyntaxEditor.SemanticParserServiceRequest request = {ActiproSoftware.SyntaxEditor.SemanticParserServiceRequest}) + 0x96 bytes
ActiproSoftware.SyntaxEditor.Net20.dll!ActiproSoftware.SyntaxEditor.SemanticParserService.a(ActiproSoftware.SyntaxEditor.SemanticParserServiceRequest A_0 = {ActiproSoftware.SyntaxEditor.SemanticParserServiceRequest}) + 0xcf bytes
ActiproSoftware.SyntaxEditor.Net20.dll!ActiproSoftware.SyntaxEditor.SemanticParserService.c() + 0x61 bytes
mscorlib.dll!System.Threading.ThreadHelper.ThreadStart_Context(object state) + 0x3b bytes
mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) + 0x81 bytes
mscorlib.dll!System.Threading.ThreadHelper.ThreadStart() + 0x40 bytes

Comments (3)

Posted 17 years ago by Actipro Software Support - Cleveland, OH, USA
Avatar
Thanks for the details, this is now fixed for the next maintenance release.


Actipro Software Support

Posted 17 years ago by Adam Dickinson
Avatar
No, thank you!
Posted 17 years ago by Actipro Software Support - Cleveland, OH, USA
Avatar
The release is out now, BTW.


Actipro Software Support

The latest build of this product (v24.1.0) was released 2 months ago, which was after the last post in this thread.

Add Comment

Please log in to a validated account to post comments.