kastiglione added inline comments.

================
Comment at: 
lldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp:228
 void StoringDiagnosticConsumer::SetCurrentModuleProgress(
-    llvm::StringRef module_name) {
-  // Ensure the ordering of:
-  //   1. Completing the existing progress event.
-  //   2. Beginining a new progress event.
-  m_current_progress_up = nullptr;
-  m_current_progress_up = std::make_unique<Progress>(
-      llvm::formatv("Currently building module {0}", module_name));
+    const std::string &module_name) {
+  if (!m_current_progress_up)
----------------
JDevlieghere wrote:
> kastiglione wrote:
> > JDevlieghere wrote:
> > > `Progress::Increment` is taking a `std::string` by value, so if you think 
> > > this will ever get called with an r-value reference, you should do the 
> > > same and `std::move` it. Otherwise the StringRef or the `const 
> > > std::string&` both require a copy.
> > Understood. The module names are references, I could change this function 
> > to take a `string &&`, but that would move the copy to the callee rather 
> > than here. Either way, I don't see a way to avoid a copy.
> Yeah if you don't have an r-value reference it cannot be avoided, but I think 
> it's still best to make this take it by value so in case there ever is one in 
> the caller to this function, it is avoided. 
Take it by value, or by r-value?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D147248/new/

https://reviews.llvm.org/D147248

_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to