27 virtual void Free(
void *inAddress,
uint inSize) = 0;
62 Trace(
"TempAllocator: Out of memory");
65 void *address = mBase + mTop;
72 virtual void Free(
void *inAddress,
uint inSize)
override
74 if (inAddress ==
nullptr)
81 if (mBase + mTop != inAddress)
83 Trace(
"TempAllocator: Freeing in the wrong order");
115 virtual void Free(
void *inAddress, [[maybe_unused]]
uint inSize)
override
std::uint8_t uint8
Definition: Core.h:440
#define JPH_EXPORT
Definition: Core.h:227
unsigned int uint
Definition: Core.h:439
#define JPH_NAMESPACE_END
Definition: Core.h:367
#define JPH_NAMESPACE_BEGIN
Definition: Core.h:361
TraceFunction Trace
Definition: IssueReporting.cpp:18
#define JPH_ASSERT(...)
Definition: IssueReporting.h:33
T AlignUp(T inV, uint64 inAlignment)
Align inV up to the next inAlignment bytes.
Definition: Math.h:80
AlignedFreeFunction AlignedFree
Definition: Memory.cpp:62
AlignedAllocateFunction AlignedAllocate
Definition: Memory.cpp:61
#define JPH_OVERRIDE_NEW_DELETE
Macro to override the new and delete functions.
Definition: Memory.h:29
#define JPH_RVECTOR_ALIGNMENT
Definition: Real.h:34
Class that makes another class non-copyable. Usage: Inherit from NonCopyable.
Definition: NonCopyable.h:11
Definition: TempAllocator.h:16
virtual void Free(void *inAddress, uint inSize)=0
Frees inSize bytes of memory located at inAddress.
virtual void * Allocate(uint inSize)=0
Allocates inSize bytes of memory, returned memory address must be JPH_RVECTOR_ALIGNMENT byte aligned.
virtual JPH_OVERRIDE_NEW_DELETE ~TempAllocator()=default
Destructor.
Default implementation of the temp allocator that allocates a large block through malloc upfront.
Definition: TempAllocator.h:32
virtual ~TempAllocatorImpl() override
Destructor, frees the block.
Definition: TempAllocator.h:44
JPH_OVERRIDE_NEW_DELETE TempAllocatorImpl(uint inSize)
Constructs the allocator with a maximum allocatable size of inSize.
Definition: TempAllocator.h:37
virtual void Free(void *inAddress, uint inSize) override
Frees inSize bytes of memory located at inAddress.
Definition: TempAllocator.h:72
bool IsEmpty() const
Definition: TempAllocator.h:90
virtual void * Allocate(uint inSize) override
Allocates inSize bytes of memory, returned memory address must be JPH_RVECTOR_ALIGNMENT byte aligned.
Definition: TempAllocator.h:51
Definition: TempAllocator.h:104
virtual void Free(void *inAddress, uint inSize) override
Frees inSize bytes of memory located at inAddress.
Definition: TempAllocator.h:115
virtual JPH_OVERRIDE_NEW_DELETE void * Allocate(uint inSize) override
Allocates inSize bytes of memory, returned memory address must be JPH_RVECTOR_ALIGNMENT byte aligned.
Definition: TempAllocator.h:109