r207087 - Comment to XML conversion: use unique_ptr for SimpleFormatContext

Dmitri Gribenko gribozavr at gmail.com
Thu Apr 24 00:52:31 PDT 2014


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(),





More information about the cfe-commits mailing list