labath added inline comments.

================
Comment at: lldb/include/lldb/Core/UniqueCStringMap.h:130-163
+  bool GetValues(ConstString unique_cstr,
+                 std::function<bool(T value)> callback) const {
+    for (const Entry &entry : llvm::make_range(std::equal_range(
+             m_map.begin(), m_map.end(), unique_cstr, Compare())))
+      if (callback(entry.value))
+        return true;
+
----------------
jankratochvil wrote:
> jankratochvil wrote:
> > labath wrote:
> > > I'm not sure these functions are really needed. They have just one 
> > > caller, and they'd be trivial if this class provided appropriate 
> > > abstractions. Maybe just add begin/end/equal_range methods, so that one 
> > > can write:
> > > ```
> > > for (value: map / map.equal_range(str))
> > >   stuff
> > > ```
> > > ?
> > > 
> > > (ideally, I'd like to have iterators instead of callbacks for the index 
> > > classes too, but iterators and class hierarchies don't mix very well)
> > Do you mean the standard iteration:
> > ```
> > for (std::pair<ConstString, DIERef> pair : map)
> >   stuff;
> > ```
> > or really
> > ```
> > for (DIERef ref : map)
> >   stuff;
> > ```
> > ?
> > 
> Implemented. IIUC for regexes it should be matched in a caller - or to make 
> also an iterator for regexes?
> ```
>   for (const auto &entry : m_map.equal_range(name))
>     if (callback(entry.value))
> ```
> ```
>   for (const auto &entry : m_map)
>     if (regex.Execute(entry.cstring.GetCString())) {
>       if (callback(entry.value))
> ```
> 
Yes, that is correct.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D77327



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to