mib added inline comments.
================ Comment at: lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp:321-342 + auto sort_keys = [&sorted_threads, + &thread_info_sp](StructuredData::Object *item) -> bool { + if (!item) + return false; + + llvm::StringRef key = item->GetStringValue(); + size_t idx = 0; ---------------- mib wrote: > JDevlieghere wrote: > > Instead of this callback, can we simplify the code by iterating over the > > keys and populate the map that way? > We don't have iterators to iterate over `StructuredData` containers with a > range-based loop, so we can only iterate over them using indices ... > > I find it ungracious to do it that way because we have to call > `GetItemAtIndex(idx)` to get the `StructuredData::Object` element from the > array, that's why I used the `ForEach` method instead. > > I think we can improve StructuredData containers to be more customizable and > operate better with the `std`/`adl` utilities, it should be done separately. I think we've discussed this offline, but if we made the `StructuredData::Array` templated (with a default template parameter), we could prevent having to sort ourself the thread dictionary, and loop twice over it (which annoys me quite a bit 😅😅) CHANGES SINCE LAST ACTION https://reviews.llvm.org/D122429/new/ https://reviews.llvm.org/D122429 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits