Author: gribozavr Date: Thu Apr 24 02:52:31 2014 New Revision: 207087 URL: http://llvm.org/viewvc/llvm-project?rev=207087&view=rev Log: Comment to XML conversion: use unique_ptr for SimpleFormatContext
Modified: cfe/trunk/include/clang/Index/CommentToXML.h cfe/trunk/lib/Index/CommentToXML.cpp Modified: cfe/trunk/include/clang/Index/CommentToXML.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Index/CommentToXML.h?rev=207087&r1=207086&r2=207087&view=diff ============================================================================== --- cfe/trunk/include/clang/Index/CommentToXML.h (original) +++ cfe/trunk/include/clang/Index/CommentToXML.h Thu Apr 24 02:52:31 2014 @@ -11,6 +11,7 @@ #define LLVM_CLANG_INDEX_COMMENTTOXML_H #include "clang/Basic/LLVM.h" +#include <memory> namespace clang { class ASTContext; @@ -24,11 +25,11 @@ namespace index { class SimpleFormatContext; class CommentToXMLConverter { - SimpleFormatContext *FormatContext; + std::unique_ptr<SimpleFormatContext> FormatContext; unsigned FormatInMemoryUniqueId; public: - CommentToXMLConverter() : FormatContext(0), FormatInMemoryUniqueId(0) {} + CommentToXMLConverter(); ~CommentToXMLConverter(); void convertCommentToHTML(const comments::FullComment *FC, Modified: cfe/trunk/lib/Index/CommentToXML.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Index/CommentToXML.cpp?rev=207087&r1=207086&r2=207087&view=diff ============================================================================== --- cfe/trunk/lib/Index/CommentToXML.cpp (original) +++ cfe/trunk/lib/Index/CommentToXML.cpp Thu Apr 24 02:52:31 2014 @@ -1136,9 +1136,8 @@ void CommentASTToXMLConverter::appendToR Result << "]]>"; } -CommentToXMLConverter::~CommentToXMLConverter() { - delete FormatContext; -} +CommentToXMLConverter::CommentToXMLConverter() : FormatInMemoryUniqueId(0) {} +CommentToXMLConverter::~CommentToXMLConverter() = default; void CommentToXMLConverter::convertCommentToHTML(const FullComment *FC, SmallVectorImpl<char> &HTML, @@ -1159,13 +1158,10 @@ void CommentToXMLConverter::convertHTMLT void CommentToXMLConverter::convertCommentToXML(const FullComment *FC, SmallVectorImpl<char> &XML, const ASTContext &Context) { - if (!FormatContext) { - FormatContext = new SimpleFormatContext(Context.getLangOpts()); - } else if ((FormatInMemoryUniqueId % 1000) == 0) { - // Delete after some number of iterations, so the buffers don't grow - // too large. - delete FormatContext; - FormatContext = new SimpleFormatContext(Context.getLangOpts()); + if (!FormatContext || (FormatInMemoryUniqueId % 1000) == 0) { + // Create a new format context, or re-create it after some number of + // iterations, so the buffers don't grow too large. + FormatContext.reset(new SimpleFormatContext(Context.getLangOpts())); } CommentASTToXMLConverter Converter(FC, XML, Context.getCommentCommandTraits(), _______________________________________________ cfe-commits mailing list cfe-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits