fix:use builtin memmove
parent
31ba6534cf
commit
1c0282d658
|
|
@ -5,18 +5,7 @@ const assert = std.debug.assert;
|
|||
/// Same as std.mem.copyForwards/Backwards but prefers libc memmove if it is
|
||||
/// available because it is generally much faster.
|
||||
pub inline fn move(comptime T: type, dest: []T, source: []const T) void {
|
||||
if (builtin.link_libc) {
|
||||
_ = memmove(dest.ptr, source.ptr, source.len * @sizeOf(T));
|
||||
} else {
|
||||
// Depending on the ordering of the copy, we need to use the
|
||||
// proper call here. Unfortunately this function call is
|
||||
// too generic to know this at comptime.
|
||||
if (@intFromPtr(dest.ptr) <= @intFromPtr(source.ptr)) {
|
||||
std.mem.copyForwards(T, dest, source);
|
||||
} else {
|
||||
std.mem.copyBackwards(T, dest, source);
|
||||
}
|
||||
}
|
||||
@memmove(dest, source);
|
||||
}
|
||||
|
||||
/// Same as @memcpy but prefers libc memcpy if it is available
|
||||
|
|
|
|||
Loading…
Reference in New Issue