[Lldb-commits] [PATCH] D104091: [NFC][lldb] Fix leak in test

Raphael Isemann via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Thu Jun 10 23:45:27 PDT 2021


teemperor requested changes to this revision.
teemperor added a comment.
This revision now requires changes to proceed.

I think we should instead implement the `Terminate` function that the plugin system provides to tear down our state. I made a patch in D104093 <https://reviews.llvm.org/D104093> that
moves the `once_flags` to the internal state struct, so with a proper `Terminate` implementation + my patch this should all work properly.

  HostInfoLinux::Terminate() {
    assert(g_fields && "Missing call to Initialize?");
    delete g_fields;
    g_fields = nullptr;
    HostInfoBase::Terminate();
  }



================
Comment at: lldb/source/Host/linux/HostInfoLinux.cpp:38
   HostInfoPosix::Initialize(helper);
-
-  g_fields = new HostInfoLinuxFields();
+  if (!g_fields)
+    g_fields = new HostInfoLinuxFields();
----------------
Please instead add a `HostInfoLinux::Terminate()` function that deletes and zeroes `g_fields` (see `HostInfoBase::Terminate`). Initialize -> Terminate should set up and tear down the data structures if possible (not saying that LLDB is doing this consistently at the moment, but that's the idea at least).


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D104091



More information about the lldb-commits mailing list