pub fn ensureCapacity(self: *ArrayListReverse, new_capacity: usize) Error!void self: *ArrayListReversenew_capacity: usize28
29
30
31
32
33
34
35
36
37
38pub fn ensureCapacity(self: *ArrayListReverse, new_capacity: usize) Error!void {
if (self.capacity >= new_capacity) return;
const old_memory = self.allocatedSlice();
// Just make a new allocation to not worry about aliasing.
const new_memory = try self.allocator.alloc(u8, new_capacity);
@memcpy(new_memory[new_capacity - self.data.len ..], self.data);
self.allocator.free(old_memory);
self.data.ptr = new_memory.ptr + new_capacity - self.data.len;
self.capacity = new_memory.len;
}