MaskRay marked 2 inline comments as done.
MaskRay added inline comments.

================
Comment at: lldb/tools/driver/Driver.cpp:856
       if (const char *reproducer_path = SBReproducer::GetPath()) {
-        // Leaking the string on purpose.
-        std::string *finalize_cmd = new std::string(argv0);
+        static std::string *finalize_cmd = new std::string(argv0);
         finalize_cmd->append(" --reproducer-finalize '");
----------------
dblaikie wrote:
> MaskRay wrote:
> > dblaikie wrote:
> > > Can this code execute more than once? If it does I guess it'll really 
> > > leak?
> > > 
> > > (if it's not meant to be called more than once, maybe something like:
> > > ```
> > > static std::string *x = nullptr;
> > > assert(!x);
> > > x = new std::string(argv0);
> > > ...
> > > ```
> > The function is only executed once. 
> If that's not enforced in any way (at least I can't see any) & the rest of 
> the code looks like it would be OK being called more than once (I think?) - 
> might be worth some checking?
The function is oneshot and from the called functions it should be clear the 
function cannot be executed more than once (otherwise, duplicate error 
messages).

I changed the function to `static` so that it is clear this is not used a 
library function.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D100806

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

Reply via email to