teemperor marked 3 inline comments as done.
teemperor added inline comments.
================
Comment at: lldb/include/lldb/Utility/RangeMap.h:739
+ auto end = std::lower_bound(m_entries.begin(), m_entries.end(),
+ Entry(addr, 1), BaseLessEqual);
+ for (auto I = m_entries.begin(); I != end; ++I) {
----------------
labath wrote:
> amccarth wrote:
> > You're trying to find an upper bound, so `std::upper_bound` seems more
> > natural than `std::lower_bound`. Understanding how `std::lower_bound`
> > works with a comparator that implements `<=` requires some mental
> > gymnastics. With `std::upper_bound`, you'd just need `<` that compares
> > only the base addresses.
> >
> > You could even avoid the custom comparison function by using the maximum
> > value for the size:
> >
> > ```
> > auto end = std::upper_bound(m_entries.begin(), m_entries.end(),
> > Entry(addr,
> > std::numeric_limits<Entry::SizeType>::max()));
> > ```
> >
> Actually, If I understand this correctly, there is no need for either lower
> or upper bound here. Since you're going to be iterating through the list
> anyway. It should be sufficient to add a early exit from the loop once you
> encounter an element whose base address is >= the address you search for.
Oh true, I got confused by all the other lower_bounding we do in the
surrounding functions :)
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D67123/new/
https://reviews.llvm.org/D67123
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits