[Lldb-commits] [PATCH] D118814: [lldb] Don't keep demangled names in memory after indexing

Jonas Devlieghere via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Thu Feb 3 08:35:47 PST 2022


JDevlieghere updated this revision to Diff 405657.
JDevlieghere edited the summary of this revision.
JDevlieghere added a comment.

The symbol table index is the only caller to `DemangleWithRichManglingInfo`, so I removed the optional argument. Based on Pavel's observations in D118812 <https://reviews.llvm.org/D118812> I also removed the setting because the current behavior defeats the purpose of partial demangling.


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

https://reviews.llvm.org/D118814

Files:
  lldb/source/Core/Mangled.cpp


Index: lldb/source/Core/Mangled.cpp
===================================================================
--- lldb/source/Core/Mangled.cpp
+++ lldb/source/Core/Mangled.cpp
@@ -215,14 +215,9 @@
     // We want the rich mangling info here, so we don't care whether or not
     // there is a demangled string in the pool already.
     if (context.FromItaniumName(m_mangled)) {
-      // If we got an info, we have a name. Copy to string pool and connect the
-      // counterparts to accelerate later access in GetDemangledName().
-      context.ParseFullName();
-      m_demangled.SetStringWithMangledCounterpart(context.GetBufferRef(),
-                                                  m_mangled);
+      // If we got an info, we have a name.
       return true;
     } else {
-      m_demangled.SetCString("");
       return false;
     }
 
@@ -231,8 +226,9 @@
     // demangle it if necessary.
     if (!m_demangled && !m_mangled.GetMangledCounterpart(m_demangled)) {
       if (char *d = GetMSVCDemangledStr(m_mangled.GetCString())) {
-        // If we got an info, we have a name. Copy to string pool and connect
-        // the counterparts to accelerate later access in GetDemangledName().
+        // Without the rich mangling info we have to demangle the full name.
+        // Copy it to string pool and connect the counterparts to accelerate
+        // later access in GetDemangledName().
         m_demangled.SetStringWithMangledCounterpart(llvm::StringRef(d),
                                                     m_mangled);
         ::free(d);


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D118814.405657.patch
Type: text/x-patch
Size: 1556 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20220203/026defae/attachment.bin>


More information about the lldb-commits mailing list