From 58641492741818b987ec86ab75c2cd438dd3ac63 Mon Sep 17 00:00:00 2001 From: Dave Lee Date: Mon, 8 May 2023 16:51:01 -0700 Subject: [PATCH] [lldb] Simplify Log::PutString (NFC) * As no format string is involved, avoid unecessary call into `Printf` * Eliminate creation of a `std::string` to print a `StringRef` Differential Revision: https://reviews.llvm.org/D150160 --- lldb/source/Utility/Log.cpp | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/lldb/source/Utility/Log.cpp b/lldb/source/Utility/Log.cpp index 7d94a89..da8569e 100644 --- a/lldb/source/Utility/Log.cpp +++ b/lldb/source/Utility/Log.cpp @@ -131,8 +131,15 @@ Log::MaskType Log::GetMask() const { return m_mask.load(std::memory_order_relaxed); } -void Log::PutCString(const char *cstr) { Printf("%s", cstr); } -void Log::PutString(llvm::StringRef str) { PutCString(str.str().c_str()); } +void Log::PutCString(const char *cstr) { PutString(cstr); } + +void Log::PutString(llvm::StringRef str) { + std::string FinalMessage; + llvm::raw_string_ostream Stream(FinalMessage); + WriteHeader(Stream, "", ""); + Stream << str << "\n"; + WriteMessage(FinalMessage); +} // Simple variable argument logging with flags. void Log::Printf(const char *format, ...) { @@ -142,20 +149,10 @@ void Log::Printf(const char *format, ...) { va_end(args); } -// All logging eventually boils down to this function call. If we have a -// callback registered, then we call the logging callback. If we have a valid -// file handle, we also log to the file. void Log::VAPrintf(const char *format, va_list args) { - std::string FinalMessage; - llvm::raw_string_ostream Stream(FinalMessage); - WriteHeader(Stream, "", ""); - llvm::SmallString<64> Content; lldb_private::VASprintf(Content, format, args); - - Stream << Content << "\n"; - - WriteMessage(FinalMessage); + PutString(Content); } // Printing of errors that are not fatal. @@ -344,6 +341,8 @@ void Log::WriteHeader(llvm::raw_ostream &OS, llvm::StringRef file, } } +// If we have a callback registered, then we call the logging callback. If we +// have a valid file handle, we also log to the file. void Log::WriteMessage(llvm::StringRef message) { // Make a copy of our stream shared pointer in case someone disables our log // while we are logging and releases the stream -- 2.7.4