FreeList.allocate

void[] allocate(size_t n)

Allocates memory either off of the free list or from the parent allocator. If n is within [min, max] or if the free list is unchecked (minSize == 0 && maxSize == size_t.max), then the free list is consulted first. If not empty (hit), the block at the front of the free list is removed from the list and returned. Otherwise (miss), a new block of max bytes is allocated, truncated to n bytes, and returned.

Parameters

nnumber of bytes to allocate

Returns

The allocated block, or null.

Precondition: If set at runtime, min and/or max must be initialized appropriately.

Postcondition: result.length == bytes || result is null