Frees aligned memory allocated by alignedMalloc or alignedRealloc. Functionally equivalent to Visual C++ _aligned_free. Do not mix allocations with different alignment.
Allocates an aligned memory chunk. Functionally equivalent to Visual C++ _aligned_malloc. Do not mix allocations with different alignment. Important: alignedMalloc(0) does not necessarily return null, and its result _has_ to be freed with alignedFree.
Reallocates an aligned memory chunk allocated by alignedMalloc or alignedRealloc. Functionally equivalent to Visual C++ _aligned_realloc. Do not mix allocations with different alignment. Important: alignedRealloc(p, 0) does not necessarily return null, and its result _has_ to be freed with alignedFree.
Same as alignedRealloc but does not preserve data.
Does memory slices a[0..a_size] and b[0..b_size] have an overlapping byte?
Used throughout dplug:dsp to avoid reliance on GC. Important: Size 0 is special-case to free the slice. This works a bit like alignedRealloc except with slices as input. You MUST use consistent alignement thoughout the lifetime of this buffer.
Allows to merge the allocation of several arrays, which saves allocation count and can speed up things thanks to locality.
Kind of a std::vector replacement. Grow-only array, points to a (optionally aligned) memory location. This can also work as an output range. Vec is designed to work even when uninitialized, without makeVec. Warning: it is pretty barebones, doesn't respect T.init or call destructors. When used in a GC program, GC roots won't be registered.
Defines Vec, reallocBuffer and memory functions.