BitmappedBlockWithInternalPointers

A BitmappedBlock with additional structure for supporting resolveInternalPointer. To that end, BitmappedBlockWithInternalPointers adds a bitmap (one bit per block) that marks object starts. The bitmap itself has variable size and is allocated together with regular allocations.

The time complexity of resolveInternalPointer is O(k), where k is the size of the object within which the internal pointer is looked up.

Constructors

this
this(ubyte[] data)
this(size_t capacity)
this(ParentAllocator parent, size_t capacity)

Constructors accepting desired capacity or a preallocated buffer, similar in semantics to those of BitmappedBlock.

Members

Aliases

alignment
alias alignment = theAlignment
allocate
void[] allocate(size_t bytes)
allocateAll
void[] allocateAll()
deallocate
bool deallocate(void[] b)
empty
Ternary empty()
expand
bool expand(void[] b, size_t bytes)
goodAllocSize
size_t goodAllocSize(size_t n)
resolveInternalPointer
Ternary resolveInternalPointer(void* p, void[] result)

Allocator primitives.

Functions

Meta