change semantics of @memcpy and @memset
Now they use slices or array pointers with any element type instead of requiring byte pointers. This is a breaking enhancement to the language. The safety check for overlapping pointers will be implemented in a future commit. closes #14040
This commit is contained in:
@@ -360,11 +360,10 @@ pub fn MultiArrayList(comptime T: type) type {
|
||||
if (@sizeOf(field_info.type) != 0) {
|
||||
const field = @intToEnum(Field, i);
|
||||
const dest_slice = self_slice.items(field)[new_len..];
|
||||
const byte_count = dest_slice.len * @sizeOf(field_info.type);
|
||||
// We use memset here for more efficient codegen in safety-checked,
|
||||
// valgrind-enabled builds. Otherwise the valgrind client request
|
||||
// will be repeated for every element.
|
||||
@memset(@ptrCast([*]u8, dest_slice.ptr), undefined, byte_count);
|
||||
@memset(dest_slice, undefined);
|
||||
}
|
||||
}
|
||||
self.len = new_len;
|
||||
|
||||
Reference in New Issue
Block a user