shrinkAndFree
Reduce allocated capacity to new_capacity.
Function parameters
Parameters
- self:*Self
- new_capacity:usize
Priority queue for storing generic data.
Functions
- PriorityQueue
- Priority queue for storing generic data.
Source
Implementation
pub fn shrinkAndFree(self: *Self, new_capacity: usize) void {
assert(new_capacity <= self.cap);
// Cannot shrink to smaller than the current queue size without invalidating the heap property
assert(new_capacity >= self.items.len);
const old_memory = self.allocatedSlice();
const new_memory = self.allocator.realloc(old_memory, new_capacity) catch |e| switch (e) {
error.OutOfMemory => { // no problem, capacity is still correct then.
return;
},
};
self.items.ptr = new_memory.ptr;
self.cap = new_memory.len;
}