From f58b0c245d157efb877e2d09ce1599233c0da06c Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Tue, 6 Aug 2019 07:31:52 +0200 Subject: [PATCH] KBuffer: Add set_size() and LogStream operator<< It will be useful to be able to set the "public" size of a KBuffer. It can still have a different amount of memory allocated internally. --- Kernel/KBuffer.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Kernel/KBuffer.h b/Kernel/KBuffer.h index 71f71bbb66..12ccea616e 100644 --- a/Kernel/KBuffer.h +++ b/Kernel/KBuffer.h @@ -11,6 +11,7 @@ // severely limited kmalloc heap. #include +#include #include #include @@ -35,6 +36,12 @@ public: size_t size() const { return m_size; } size_t capacity() const { return m_region->size(); } + void set_size(size_t size) + { + ASSERT(size <= capacity()); + m_size = size; + } + private: explicit KBufferImpl(NonnullRefPtr&& region, size_t size) : m_size(size) @@ -63,6 +70,8 @@ public: size_t size() const { return m_impl->size(); } size_t capacity() const { return m_impl->size(); } + void set_size(size_t size) { m_impl->set_size(size); } + const KBufferImpl& impl() const { return m_impl; } KBuffer(const ByteBuffer& buffer) @@ -78,3 +87,8 @@ private: NonnullRefPtr m_impl; }; + +inline const LogStream& operator<<(const LogStream& stream, const KBuffer& value) +{ + return stream << StringView(value.data(), value.size()); +}