From df7062aac52efb15fe63d34cdbec388e44f8b501 Mon Sep 17 00:00:00 2001 From: AnotherTest Date: Fri, 3 Apr 2020 06:22:31 +0430 Subject: AK: Add an overwrite API to ByteBuffer Since ByteBuffer is a Buffer, it should allow us to overwrite parts of it that we have allocated. This comes in useful in handling unsequenced writes like handling fragmented ip packets :^) --- AK/ByteBuffer.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'AK') diff --git a/AK/ByteBuffer.h b/AK/ByteBuffer.h index 179cba936c..3f8a245fdd 100644 --- a/AK/ByteBuffer.h +++ b/AK/ByteBuffer.h @@ -216,6 +216,13 @@ public: __builtin_memcpy(this->data() + old_size, data, data_size); } + void overwrite(size_t offset, const void* data, size_t data_size) + { + // make sure we're not told to write past the end + ASSERT(offset + data_size < size()); + __builtin_memcpy(this->data() + offset, data, data_size); + } + private: explicit ByteBuffer(RefPtr&& impl) : m_impl(move(impl)) -- cgit v1.2.3