aboutsummaryrefslogtreecommitdiff
path: root/kernel/kapi/devices/device.cpp
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@ost.ch>2026-07-27 16:10:38 +0200
committerFelix Morgner <felix.morgner@ost.ch>2026-07-27 16:10:38 +0200
commitdca8353027526b9e522ad8be169d9763e447b08b (patch)
tree45614de8059a2a67a853c8407dbbd6073f902e40 /kernel/kapi/devices/device.cpp
parent1cad7524b291fd7a6f77e01bb90e763e6b557620 (diff)
downloadkernel-dca8353027526b9e522ad8be169d9763e447b08b.tar.xz
kernel-dca8353027526b9e522ad8be169d9763e447b08b.zip
kapi: fix device resource lookup
Diffstat (limited to 'kernel/kapi/devices/device.cpp')
-rw-r--r--kernel/kapi/devices/device.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/kernel/kapi/devices/device.cpp b/kernel/kapi/devices/device.cpp
index a05a1653..237183c9 100644
--- a/kernel/kapi/devices/device.cpp
+++ b/kernel/kapi/devices/device.cpp
@@ -93,11 +93,10 @@ namespace kapi::devices
{
auto guard = kstd::lock_guard{m_lock};
- auto numbered_resources = std::views::enumerate(m_resources);
- auto found = std::ranges::find_if(numbered_resources, [&](auto entry) {
- auto const & [number, resource] = entry;
- return resource.type == type && static_cast<std::size_t>(number) == index;
- });
+ auto filtered = std::views::filter(m_resources, [&](auto e) { return e.type == type; });
+ auto numbered_resources = std::views::enumerate(filtered);
+ auto found = std::ranges::find_if(
+ numbered_resources, [&](auto entry) { return static_cast<std::size_t>(std::get<0>(entry)) == index; });
if (found != numbered_resources.end())
{