diff options
| author | Felix Morgner <felix.morgner@ost.ch> | 2026-04-30 18:01:23 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@ost.ch> | 2026-04-30 18:01:23 +0200 |
| commit | 9fc9d3b011db40027e8c1220c535007a786d03ff (patch) | |
| tree | cef453f4bc0d8cdc02285b2f04388daa2fe007a9 /kernel/src/devices | |
| parent | c15bae85ebffbb137647c48fccd219d334a5f8ea (diff) | |
| download | kernel-9fc9d3b011db40027e8c1220c535007a786d03ff.tar.xz kernel-9fc9d3b011db40027e8c1220c535007a786d03ff.zip | |
build: upgrade to GCC 16
Diffstat (limited to 'kernel/src/devices')
| -rw-r--r-- | kernel/src/devices/storage/management.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/kernel/src/devices/storage/management.cpp b/kernel/src/devices/storage/management.cpp index 7361cd5..1f2acba 100644 --- a/kernel/src/devices/storage/management.cpp +++ b/kernel/src/devices/storage/management.cpp @@ -13,6 +13,7 @@ #include <algorithm> #include <cstddef> #include <optional> +#include <ranges> namespace { @@ -63,18 +64,20 @@ namespace kernel::devices::storage auto management::device_by_major_minor(size_t major, size_t minor) -> kstd::shared_ptr<kapi::devices::device> { - kstd::shared_ptr<kapi::devices::device> found = nullptr; - - std::ranges::find_if(m_controllers, [&](auto const & controller) { + auto found = std::ranges::find_if(m_controllers, [=](auto const & controller) { if (controller != nullptr && controller->major() == major) { - found = controller->device_by_minor(minor); - return found != nullptr; + return controller->device_by_minor(minor) != nullptr; } return false; }); - return found; + if (found != std::ranges::cend(m_controllers)) + { + return found->get()->device_by_minor(minor); + } + + return nullptr; } auto management::determine_boot_device() -> kstd::shared_ptr<kapi::devices::device> |
