Skip to content

Commit 75e4034

Browse files
committed
std.ArrayList: actaully memset to undefined in shrinkRetainingCapacity and clearRetainingCapacity
See ziglang#25810
1 parent 416bf1d commit 75e4034

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

lib/std/array_list.zig

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -380,15 +380,15 @@ pub fn AlignedManaged(comptime T: type, comptime alignment: ?mem.Alignment) type
380380
/// Asserts that the new length is less than or equal to the previous length.
381381
pub fn shrinkRetainingCapacity(self: *Self, new_len: usize) void {
382382
assert(new_len <= self.items.len);
383-
self.items.len = new_len;
384383
@memset(self.items[new_len..], undefined);
384+
self.items.len = new_len;
385385
}
386386

387387
/// Reduce length to 0.
388388
/// Invalidates all element pointers.
389389
pub fn clearRetainingCapacity(self: *Self) void {
390-
self.items.len = 0;
391390
@memset(self.items, undefined);
391+
self.items.len = 0;
392392
}
393393

394394
/// Invalidates all element pointers.
@@ -1141,11 +1141,14 @@ pub fn Aligned(comptime T: type, comptime alignment: ?mem.Alignment) type {
11411141
/// Asserts that the new length is less than or equal to the previous length.
11421142
pub fn shrinkRetainingCapacity(self: *Self, new_len: usize) void {
11431143
assert(new_len <= self.items.len);
1144+
@memset(self.items[new_len..], undefined);
11441145
self.items.len = new_len;
11451146
}
11461147

1148+
/// Reduce length to 0.
11471149
/// Invalidates all element pointers.
11481150
pub fn clearRetainingCapacity(self: *Self) void {
1151+
@memset(self.items, undefined);
11491152
self.items.len = 0;
11501153
}
11511154

0 commit comments

Comments
 (0)