aboutsummaryrefslogtreecommitdiff
path: root/libs/kstd
diff options
context:
space:
mode:
Diffstat (limited to 'libs/kstd')
-rw-r--r--libs/kstd/kstd/ring_buffer.hpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/libs/kstd/kstd/ring_buffer.hpp b/libs/kstd/kstd/ring_buffer.hpp
index 6bdfce92..6a152731 100644
--- a/libs/kstd/kstd/ring_buffer.hpp
+++ b/libs/kstd/kstd/ring_buffer.hpp
@@ -94,18 +94,27 @@ namespace kstd
//! @}
private:
- constexpr auto element_at_index(size_type index) noexcept -> pointer
+ //! Get a pointer to the element at the given read-index relative position.
+ //!
+ //! @param position The logical (read-index relative) index of the element.
+ //! @return A pointer to the object at given position.
+ constexpr auto element_at_index(size_type position) noexcept -> pointer
{
auto base_pointer = reinterpret_cast<pointer>(m_storage.data());
- auto storage_index = (m_read_index + index) % capacity();
+ auto storage_index = (m_read_index + position) % capacity();
return base_pointer + storage_index;
}
- constexpr auto element_at_index(size_type index) const noexcept -> const_pointer
+ //! Get a pointer to the element at the given read-index relative position.
+ //!
+ //! @param position The logical (read-index relative) index of the element.
+ //! @return A pointer to the object at given position.
+ constexpr auto element_at_index(size_type position) const noexcept -> const_pointer
{
- return const_cast<ring_buffer *>(this)->element_at_index(index);
+ return const_cast<ring_buffer *>(this)->element_at_index(position);
}
+ //! Trigger a kernel panic if an attempt is made to use an invalid index.
constexpr auto panic_on_invalid_index(size_type index) const -> void
{
if (index >= size())