mirror of
https://github.com/SerenityOS/serenity
synced 2024-07-22 02:26:11 +00:00
AK: Use __builtin_memmove for ByteBuffer and Span's overwrite
__builtin_memcpy will fail when the target area and the source area overlap. Using __builtin_memmove will handle this case as well.
This commit is contained in:
parent
59eb2d5de4
commit
e4a1bc1542
|
@ -214,7 +214,7 @@ public:
|
|||
{
|
||||
// make sure we're not told to write past the end
|
||||
VERIFY(offset + data_size <= size());
|
||||
__builtin_memcpy(this->data() + offset, data, data_size);
|
||||
__builtin_memmove(this->data() + offset, data, data_size);
|
||||
}
|
||||
|
||||
void zero_fill()
|
||||
|
|
|
@ -144,7 +144,7 @@ public:
|
|||
{
|
||||
// make sure we're not told to write past the end
|
||||
VERIFY(offset + data_size <= size());
|
||||
__builtin_memcpy(this->data() + offset, data, data_size);
|
||||
__builtin_memmove(this->data() + offset, data, data_size);
|
||||
}
|
||||
|
||||
ALWAYS_INLINE constexpr size_t copy_to(Span<RemoveConst<T>> other) const
|
||||
|
|
Loading…
Reference in a new issue