From 11fc1f5097f14e5ca50bebf333a46c7c6bf4c30e Mon Sep 17 00:00:00 2001 From: Dimitar Dobrev Date: Fri, 1 Apr 2016 06:30:40 +0300 Subject: [PATCH] Checked whether block comments actually have paragraphs. Signed-off-by: Dimitar Dobrev --- src/Core/Parser/ASTConverter.cs | 3 ++- src/Generator/Generators/CSharp/CSharpCommentPrinter.cs | 8 +++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/Core/Parser/ASTConverter.cs b/src/Core/Parser/ASTConverter.cs index fd0a3bab..8c827cc0 100644 --- a/src/Core/Parser/ASTConverter.cs +++ b/src/Core/Parser/ASTConverter.cs @@ -1752,7 +1752,8 @@ namespace CppSharp private void VisitBlockCommandComment(AST.BlockCommandComment blockCommandComment, BlockCommandComment comment) { blockCommandComment.CommandId = comment.CommandId; - blockCommandComment.ParagraphComment = (AST.ParagraphComment) Visit(comment.ParagraphComment); + if (comment.ParagraphComment != null) + blockCommandComment.ParagraphComment = (AST.ParagraphComment) Visit(comment.ParagraphComment); for (uint i = 0; i < comment.ArgumentsCount; i++) { var argument = new AST.BlockCommandComment.Argument { Text = comment.getArguments(i).Text }; diff --git a/src/Generator/Generators/CSharp/CSharpCommentPrinter.cs b/src/Generator/Generators/CSharp/CSharpCommentPrinter.cs index b03a5b98..7c0eaef7 100644 --- a/src/Generator/Generators/CSharp/CSharpCommentPrinter.cs +++ b/src/Generator/Generators/CSharp/CSharpCommentPrinter.cs @@ -29,7 +29,8 @@ namespace CppSharp.Generators.CSharp break; case CommentKind.BlockCommandComment: var blockCommandComment = (BlockCommandComment) comment; - if (blockCommandComment.CommandKind == CommentCommandKind.Return) + if (blockCommandComment.CommandKind == CommentCommandKind.Return && + blockCommandComment.ParagraphComment != null) { sections.Add(new Section(CommentElement.Returns)); blockCommandComment.ParagraphComment.GetCommentSections(sections); @@ -42,8 +43,9 @@ namespace CppSharp.Generators.CSharp if (paramCommandComment.Arguments.Count > 0) param.Attributes.Add( string.Format("name=\"{0}\"", paramCommandComment.Arguments[0].Text)); - foreach (var inlineContentComment in paramCommandComment.ParagraphComment.Content) - inlineContentComment.GetCommentSections(sections); + if (paramCommandComment.ParagraphComment != null) + foreach (var inlineContentComment in paramCommandComment.ParagraphComment.Content) + inlineContentComment.GetCommentSections(sections); break; case CommentKind.TParamCommandComment: break;