aboutsummaryrefslogtreecommitdiff
path: root/lib/std/array_list.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2023-04-26 10:01:54 -0700
committerGitHub <noreply@github.com>2023-04-26 10:01:54 -0700
commit3c66850e4296ce2e0f9e0d25bc537aa489f4603e (patch)
treeae4b78d3e1ee15253ee353a8c9d972a1034f6fc6 /lib/std/array_list.zig
parentd0311e28b397d173f0d60c403985047ec952a172 (diff)
parentbadad16f88ac7e1eb84eadf76e13b4dc346d4ced (diff)
downloadzig-3c66850e4296ce2e0f9e0d25bc537aa489f4603e.tar.gz
zig-3c66850e4296ce2e0f9e0d25bc537aa489f4603e.zip
Merge pull request #15278 from ziglang/memcpy-memset
change semantics of `@memcpy` and `@memset`
Diffstat (limited to 'lib/std/array_list.zig')
-rw-r--r--lib/std/array_list.zig16
1 files changed, 4 insertions, 12 deletions
diff --git a/lib/std/array_list.zig b/lib/std/array_list.zig
index 1695e2bd87..1791482bc4 100644
--- a/lib/std/array_list.zig
+++ b/lib/std/array_list.zig
@@ -121,7 +121,7 @@ pub fn ArrayListAligned(comptime T: type, comptime alignment: ?u29) type {
const new_memory = try allocator.alignedAlloc(T, alignment, self.items.len);
mem.copy(T, new_memory, self.items);
- @memset(@ptrCast([*]u8, self.items.ptr), undefined, self.items.len * @sizeOf(T));
+ @memset(self.items, undefined);
self.clearAndFree();
return new_memory;
}
@@ -281,11 +281,7 @@ pub fn ArrayListAligned(comptime T: type, comptime alignment: ?u29) type {
const new_len = old_len + items.len;
assert(new_len <= self.capacity);
self.items.len = new_len;
- @memcpy(
- @ptrCast([*]align(@alignOf(T)) u8, self.items.ptr + old_len),
- @ptrCast([*]const u8, items.ptr),
- items.len * @sizeOf(T),
- );
+ @memcpy(self.items[old_len..][0..items.len], items);
}
pub const Writer = if (T != u8)
@@ -601,7 +597,7 @@ pub fn ArrayListAlignedUnmanaged(comptime T: type, comptime alignment: ?u29) typ
const new_memory = try allocator.alignedAlloc(T, alignment, self.items.len);
mem.copy(T, new_memory, self.items);
- @memset(@ptrCast([*]u8, self.items.ptr), undefined, self.items.len * @sizeOf(T));
+ @memset(self.items, undefined);
self.clearAndFree(allocator);
return new_memory;
}
@@ -740,11 +736,7 @@ pub fn ArrayListAlignedUnmanaged(comptime T: type, comptime alignment: ?u29) typ
const new_len = old_len + items.len;
assert(new_len <= self.capacity);
self.items.len = new_len;
- @memcpy(
- @ptrCast([*]align(@alignOf(T)) u8, self.items.ptr + old_len),
- @ptrCast([*]const u8, items.ptr),
- items.len * @sizeOf(T),
- );
+ @memcpy(self.items[old_len..][0..items.len], items);
}
pub const WriterContext = struct {