Commit c714a3250f
Changed files (1)
lib
lib/std/array_list.zig
@@ -294,6 +294,18 @@ pub fn ArrayListAligned(comptime T: type, comptime alignment: ?u29) type {
self.items.len = new_len;
}
+ /// Invalidates all element pointers.
+ pub fn clearRetainingCapacity(self: *Self) void {
+ self.items.len = 0;
+ }
+
+ /// Invalidates all element pointers.
+ pub fn clearAndFree(self: *Self) void {
+ self.allocator.free(self.allocatedSlice());
+ self.items.len = 0;
+ self.capacity = 0;
+ }
+
/// Deprecated: call `ensureUnusedCapacity` or `ensureTotalCapacity`.
pub const ensureCapacity = ensureTotalCapacity;
@@ -611,6 +623,18 @@ pub fn ArrayListAlignedUnmanaged(comptime T: type, comptime alignment: ?u29) typ
self.items.len = new_len;
}
+ /// Invalidates all element pointers.
+ pub fn clearRetainingCapacity(self: *Self) void {
+ self.items.len = 0;
+ }
+
+ /// Invalidates all element pointers.
+ pub fn clearAndFree(self: *Self, allocator: *Allocator) void {
+ allocator.free(self.allocatedSlice());
+ self.items.len = 0;
+ self.capacity = 0;
+ }
+
/// Deprecated: call `ensureUnusedCapacity` or `ensureTotalCapacity`.
pub const ensureCapacity = ensureTotalCapacity;