From: Chris Lattner Date: Wed, 16 Apr 2008 03:46:57 +0000 (+0000) Subject: speed up -emit-html in a release build by 6.5% by avoiding std::string. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b9bc3eca218e2670f05b34c0b3c33a46d710bd88;p=clang speed up -emit-html in a release build by 6.5% by avoiding std::string. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49764 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/Driver/HTMLPrint.cpp b/Driver/HTMLPrint.cpp index 981be851cf..165689d143 100644 --- a/Driver/HTMLPrint.cpp +++ b/Driver/HTMLPrint.cpp @@ -56,8 +56,10 @@ HTMLPrinter::~HTMLPrinter() { // Emit the HTML. if (const RewriteBuffer *RewriteBuf = R.getRewriteBufferFor(FileID)) { - std::string S(RewriteBuf->begin(), RewriteBuf->end()); - printf("%s\n", S.c_str()); + char *Buffer = (char*)malloc(RewriteBuf->size()); + std::copy(RewriteBuf->begin(), RewriteBuf->end(), Buffer); + fwrite(Buffer, 1, RewriteBuf->size(), stdout); + free(Buffer); } } diff --git a/include/clang/Rewrite/Rewriter.h b/include/clang/Rewrite/Rewriter.h index bb4e16a8e8..261465ea5a 100644 --- a/include/clang/Rewrite/Rewriter.h +++ b/include/clang/Rewrite/Rewriter.h @@ -49,6 +49,7 @@ public: typedef BufferTy::const_iterator iterator; iterator begin() const { return Buffer.begin(); } iterator end() const { return Buffer.end(); } + unsigned size() const { return Buffer.size(); } private: // Methods only usable by Rewriter.