View source code
Display the source code in std/experimental/allocator/building_blocks/free_list.d from which this page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using local clone.

Function std.experimental.allocator.building_blocks.free_list.FreeList.allocate

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.

void[] allocate (
  size_t n
);

Parameters

NameDescription
n number 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

Authors

License