std.ArrayList: actaully memset to undefined in shrinkRetainingCapacity and clearRetainingCapacity

See #25810
This commit is contained in:
Mateusz Poliwczak 2025-11-06 07:52:01 +01:00 committed by Ryan Liptak
parent e639602569
commit b2895f356f

View file

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