destroy
ptr should be the return value of create, or otherwise
have the same address and alignment property.
Function parameters
Parameters
Type definitions in this namespace
Types
Functions in this namespace
Functions
- rawAlloc
- This function is not intended to be called except from within the
- rawResize
- This function is not intended to be called except from within the
- rawRemap
- This function is not intended to be called except from within the
- rawFree
- This function is not intended to be called except from within the
- create
- Returns a pointer to undefined memory.
- destroy
- `ptr` should be the return value of `create`, or otherwise
- alloc
- Allocates an array of `n` items of type `T` and sets all the
- allocSentinel
- Allocates an array of `n + 1` items of type `T` and sets the first `n`
- resize
- Request to modify the size of an allocation.
- remap
- Request to modify the size of an allocation, allowing relocation.
- realloc
- This function requests a new size for an existing allocation, which
- free
- Free an array allocated with `alloc`.
- dupe
- Copies `m` to newly allocated memory.
- dupeZ
- Copies `m` to newly allocated memory, with a null-terminated element.
Error sets in this namespace
Error Sets
Source
Implementation
pub fn destroy(self: Allocator, ptr: anytype) void {
const info = @typeInfo(@TypeOf(ptr)).pointer;
if (info.size != .one) @compileError("ptr must be a single item pointer");
const T = info.child;
if (@sizeOf(T) == 0) return;
const non_const_ptr = @as([*]u8, @ptrCast(@constCast(ptr)));
self.rawFree(non_const_ptr[0..@sizeOf(T)], .fromByteUnits(info.alignment), @returnAddress());
}