[Lldb-commits] [PATCH] D159313: [lldb][NFCI] Remove use of ConstString in StructuredData

Alex Langford via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Thu Aug 31 15:29:40 PDT 2023


bulbazord marked an inline comment as done.
bulbazord added inline comments.


================
Comment at: lldb/include/lldb/Utility/StructuredData.h:448
-      if (!key.empty()) {
-        ConstString key_cs(key);
-        collection::const_iterator iter = m_dict.find(key_cs);
----------------
fdeazeve wrote:
> This line in particular also shows why I think this patch is appropriate: even queries were introducing strings into the pool
Yes, this also was happening in `HasKey` as well. 


================
Comment at: lldb/include/lldb/Utility/StructuredData.h:537
     void AddItem(llvm::StringRef key, ObjectSP value_sp) {
-      ConstString key_cs(key);
-      m_dict[key_cs] = std::move(value_sp);
+      m_dict.insert({key, std::move(value_sp)});
     }
----------------
fdeazeve wrote:
> This is not equivalent to the old code, right? The previous code would overwrite the contents if the key already existed.
Oh, good catch. I think what I want is `insert_or_assign`. Will update.


================
Comment at: lldb/source/Utility/StructuredData.cpp:173
+
+  llvm::sort(sorted_entries, [&](const Entry &lhs, const Entry &rhs) -> bool {
+    return lhs.first < rhs.first;
----------------
fdeazeve wrote:
> I thought pairs had `operator <` defined already?
Oh, I didn't even think to check. I'll try it and update if I don't need to define this lambda.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D159313



More information about the lldb-commits mailing list