From 5801be615a50bf465a9663b7f75cafbcf0870f5c Mon Sep 17 00:00:00 2001 From: Lukas Oesch Date: Tue, 17 Mar 2026 11:49:13 +0100 Subject: use kstd::vector instead of std::array and replace plain-pointers with kstd::shared_ptr --- kernel/filesystem/src/device_file.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'kernel/filesystem/src/device_file.cpp') diff --git a/kernel/filesystem/src/device_file.cpp b/kernel/filesystem/src/device_file.cpp index f11638e..882c9b1 100644 --- a/kernel/filesystem/src/device_file.cpp +++ b/kernel/filesystem/src/device_file.cpp @@ -6,14 +6,15 @@ #include "devices/device.hpp" #include +#include +#include #include -#include #include namespace filesystem { - device_file::device_file(devices::device * device) + device_file::device_file(kstd::shared_ptr device) : m_device(device) { if (!m_device) @@ -90,7 +91,13 @@ namespace filesystem return 0; } - auto * block_dev = static_cast(m_device); + // @Felix rtti not activated why? e.g. dynamic_cast does not work, whats with std::dynamic_pointer_cast + // online: rtti overhead, bad design, ... ? + auto * block_dev = static_cast(m_device.get()); + if (block_dev == nullptr) + { + kapi::system::panic("[FILESYSTEM] device_file: expected block_device."); + } size_t const block_size = block_dev->block_size(); size_t const capacity = block_dev->capacity(); @@ -99,8 +106,7 @@ namespace filesystem return 0; size_t const total_to_process = std::min(size, capacity - offset); - // TODO BA-FS26 use kstd::vector when available - std::array scratch_buffer{}; // TODO BA-FS26 better solution than fixed scratch_buffer ?? + kstd::vector scratch_buffer{block_size}; auto processed = 0uz; while (processed < total_to_process) -- cgit v1.2.3