Struct UnsafeScratchAllocator
A fixed-size buffer from which you can make allocations.
Namespace: Unity.Collections.LowLevel.Unsafe
Syntax
public struct UnsafeScratchAllocator
Remarks
Allocations from a scratch allocator are not individually deallocated. Instead, when you're done using all the allocations from a scratch allocator, you dispose the allocator as a whole.
Constructors
UnsafeScratchAllocator(Void*, Int32)
Initializes and returns an instance of UnsafeScratchAllocator.
Declaration
public UnsafeScratchAllocator(void *ptr, int capacityInBytes)
Parameters
Type | Name | Description |
---|---|---|
Void* | ptr | An existing buffer to use as the allocator's internal buffer. |
Int32 | capacityInBytes | The size in bytes of the internal buffer. |
Methods
Allocate(Int32, Int32)
Returns an allocation from the allocator's internal buffer.
Declaration
public void *Allocate(int sizeInBytes, int alignmentInBytes)
Parameters
Type | Name | Description |
---|---|---|
Int32 | sizeInBytes | The size of the new allocation. |
Int32 | alignmentInBytes | The alignment of the new allocation. |
Returns
Type | Description |
---|---|
Void* | A pointer to the new allocation. |
Exceptions
Type | Condition |
---|---|
ArgumentException | Thrown if the new allocation would exceed the capacity of the allocator. |
Allocate<T>(Int32)
Returns an allocation from the allocator's internal buffer.
Declaration
public void *Allocate<T>(int count = 1)
where T : struct
Parameters
Type | Name | Description |
---|---|---|
Int32 | count | The number of elements to allocate space for. Defaults to 1. |
Returns
Type | Description |
---|---|
Void* | A pointer to the new allocation. |
Type Parameters
Name | Description |
---|---|
T | The type of element to allocate space for. |
Remarks
The allocation size in bytes is at least count * sizeof(T)
. The space consumed by the allocation may be a little larger than this size due to alignment.
Exceptions
Type | Condition |
---|---|
ArgumentException | Thrown if the new allocation would exceed the capacity of the allocator. |