[Lldb-commits] [PATCH] D122429: [lldb/Plugin] Sort the ScriptedProcess' thread list before creating threads

Med Ismail Bennani via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Fri Mar 25 11:06:41 PDT 2022


mib added inline comments.


================
Comment at: lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp:320
+
+  std::vector<llvm::StringRef> sorted_keys(keys->GetSize());
+  auto sort_keys = [&sorted_keys](StructuredData::Object *item) -> bool {
----------------
JDevlieghere wrote:
> mib wrote:
> > JDevlieghere wrote:
> > > Won't this overflow when you return the example from the summary?
> > > 
> > > ```
> > > {1: "one", 2: "two", 10: "ten"}
> > > ```
> > > 
> > > Would it be easier to populate our own `map<size_t, ObjectSP>` and iterate over that below? 
> > I don't see why it would overflow 🧐
> You create a vector with 3 elements:
> 
> ```
> std::vector<llvm::StringRef> sorted_keys(keys->GetSize());
> ```
> 
> But you use the key from the dictionary to index the vector:
> 
> ```
> sorted_keys[0] = "";
> sorted_keys[1] = "one";
> sorted_keys[2] = "two";
> -- end of vector --
> sorted_keys[10] = "ten"; 
> ```
You're right! I didn't hit this because in the Scripted Process case, indices are 0 based, so that works perfectly but I guess I could use a map to prevent a potential overflow


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D122429



More information about the lldb-commits mailing list