Kernel: Use the InstrusiveRedBlackTree::begin_from(V&) API

This let's us skip an O(logn) tree traversal.
This commit is contained in:
Idan Horowitz 2022-04-04 00:21:10 +03:00 committed by Andreas Kling
parent 1787d94907
commit d6e4a25e0c
Notes: sideshowbarker 2024-07-17 14:29:49 +09:00

View file

@ -271,7 +271,7 @@ ErrorOr<Vector<Region*>> AddressSpace::find_regions_intersecting(VirtualRange co
auto* found_region = m_region_tree.regions().find_largest_not_above(range.base().get());
if (!found_region)
return regions;
for (auto iter = m_region_tree.regions().begin_from((*found_region).vaddr().get()); !iter.is_end(); ++iter) {
for (auto iter = m_region_tree.regions().begin_from(*found_region); !iter.is_end(); ++iter) {
auto const& iter_range = (*iter).range();
if (iter_range.base() < range.end() && iter_range.end() > range.base()) {
TRY(regions.try_append(&*iter));