pub fn toOwnedSlice(self: *Self) Allocator.Error!Slice self: *Self130
131
132
133
134
135
136
137
138
139
140
141
142
143
144 pub fn toOwnedSlice(self: *Self) Allocator.Error!Slice {
self.pointer_stability.assertUnlocked();
const allocator = self.allocator;
const old_memory = self.allocatedSlice();
if (allocator.remap(old_memory, self.items.len)) |new_items| {
self.* = init(allocator);
return new_items;
}
const new_memory = try allocator.alignedAlloc(T, alignment, self.items.len);
@memcpy(new_memory, self.items);
self.clearAndFree();
return new_memory;
}
The caller owns the returned memory. Empties this ArrayList. Its capacity is cleared, making
deinitsafe but unnecessary to call. May invalidate element pointers if remapping memory cannot be done in place.