UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FMallocPurgatoryProxy Class Reference
+ Inheritance diagram for FMallocPurgatoryProxy:

Public Member Functions

 FMallocPurgatoryProxy (FMalloc *InMalloc)
 
virtual void InitializeStatsMetadata () override
 
voidMalloc (SIZE_T Size, uint32 Alignment)
 
virtual voidRealloc (void *Ptr, SIZE_T NewSize, uint32 Alignment) override
 
virtual void Free (void *Ptr) override
 
virtual void GetAllocatorStats (FGenericMemoryStats &out_Stats) override
 
virtual void DumpAllocatorStats (class FOutputDevice &Ar) override
 
virtual bool ValidateHeap () override
 
virtual bool GetAllocationSize (void *Original, SIZE_T &SizeOut) override
 
virtual SIZE_T QuantizeSize (SIZE_T Count, uint32 Alignment) override
 
virtual void Trim (bool bTrimThreadCaches) override
 
virtual void SetupTLSCachesOnCurrentThread () override
 
virtual void MarkTLSCachesAsUsedOnCurrentThread () override
 
virtual void MarkTLSCachesAsUnusedOnCurrentThread () override
 
virtual void ClearAndDisableTLSCachesOnCurrentThread () override
 
virtual const TCHARGetDescriptiveName () override
 
virtual void OnMallocInitialized () override
 
virtual void OnPreFork () override
 
virtual void OnPostFork () override
 
- Public Member Functions inherited from FMalloc
virtual CORE_API voidTryMalloc (SIZE_T Count, uint32 Alignment=DEFAULT_ALIGNMENT)
 
virtual CORE_API voidTryRealloc (void *Original, SIZE_T Count, uint32 Alignment=DEFAULT_ALIGNMENT)
 
virtual CORE_API voidMallocZeroed (SIZE_T Count, uint32 Alignment=DEFAULT_ALIGNMENT)
 
virtual CORE_API voidTryMallocZeroed (SIZE_T Count, uint32 Alignment=DEFAULT_ALIGNMENT)
 
virtual CORE_API void UpdateStats ()
 
virtual bool IsInternallyThreadSafe () const
 
virtual uint64 GetImmediatelyFreeableCachedMemorySize () const
 
virtual uint64 GetTotalFreeCachedMemorySize () const
 
- Public Member Functions inherited from FUseSystemMallocForNew
CORE_API voidoperator new (size_t Size)
 
CORE_API void operator delete (void *Ptr)
 
voidoperator new[] (size_t Size)
 
void operator delete[] (void *Ptr)
 
- Public Member Functions inherited from FExec
virtual CORE_API ~FExec ()
 
virtual CORE_API bool Exec (UWorld *InWorld, const TCHAR *Cmd, FOutputDevice &Ar)
 

Additional Inherited Members

- Static Public Attributes inherited from FMalloc
static CORE_API TAtomic< uint64MaxSingleAlloc
 
- Protected Member Functions inherited from FExec
virtual bool Exec_Runtime (UWorld *InWorld, const TCHAR *Cmd, FOutputDevice &Ar)
 
virtual bool Exec_Dev (UWorld *InWorld, const TCHAR *Cmd, FOutputDevice &Ar)
 
virtual bool Exec_Editor (UWorld *InWorld, const TCHAR *Cmd, FOutputDevice &Ar)
 

Constructor & Destructor Documentation

◆ FMallocPurgatoryProxy()

FMallocPurgatoryProxy::FMallocPurgatoryProxy ( FMalloc InMalloc)
inline

Constructor for thread safe proxy malloc that takes a malloc to be used and a synchronization object used via FScopeLock as a parameter.

Parameters
InMallocFMalloc that is going to be used for actual allocations

Member Function Documentation

◆ ClearAndDisableTLSCachesOnCurrentThread()

virtual void FMallocPurgatoryProxy::ClearAndDisableTLSCachesOnCurrentThread ( )
inlineoverridevirtual

Clears the TLS caches on the current thread and disables any future caching.

Reimplemented from FMalloc.

◆ DumpAllocatorStats()

virtual void FMallocPurgatoryProxy::DumpAllocatorStats ( class FOutputDevice Ar)
inlineoverridevirtual

Dumps allocator stats to an output device.

Reimplemented from FMalloc.

◆ Free()

virtual void FMallocPurgatoryProxy::Free ( void Ptr)
inlineoverridevirtual

Free

Implements FMalloc.

◆ GetAllocationSize()

virtual bool FMallocPurgatoryProxy::GetAllocationSize ( void Original,
SIZE_T SizeOut 
)
inlineoverridevirtual

If possible determine the size of the memory allocated at the given address

Parameters
Original- Pointer to memory we are checking the size of
SizeOut- If possible, this value is set to the size of the passed in pointer
Returns
true if succeeded

Reimplemented from FMalloc.

◆ GetAllocatorStats()

virtual void FMallocPurgatoryProxy::GetAllocatorStats ( FGenericMemoryStats out_Stats)
inlineoverridevirtual

Writes allocator stats from the last update into the specified destination.

Reimplemented from FMalloc.

◆ GetDescriptiveName()

virtual const TCHAR * FMallocPurgatoryProxy::GetDescriptiveName ( )
inlineoverridevirtual

Gets descriptive name for logging purposes.

Returns
pointer to human-readable malloc name

Reimplemented from FMalloc.

◆ InitializeStatsMetadata()

virtual void FMallocPurgatoryProxy::InitializeStatsMetadata ( )
inlineoverridevirtual

Initializes stats metadata. We need to do this as soon as possible, but cannot be done in the constructor due to the FName::StaticInit

Reimplemented from FMalloc.

◆ Malloc()

void * FMallocPurgatoryProxy::Malloc ( SIZE_T  Size,
uint32  Alignment 
)
inlinevirtual

Malloc

Implements FMalloc.

◆ MarkTLSCachesAsUnusedOnCurrentThread()

virtual void FMallocPurgatoryProxy::MarkTLSCachesAsUnusedOnCurrentThread ( )
inlineoverridevirtual

Mark TLS caches for current thread as unused. Typically before going to sleep. These are the threads that we can trim without waking them up.

Reimplemented from FMalloc.

◆ MarkTLSCachesAsUsedOnCurrentThread()

virtual void FMallocPurgatoryProxy::MarkTLSCachesAsUsedOnCurrentThread ( )
inlineoverridevirtual

Mark TLS caches for the current thread as used. Thread has woken up to do some processing and needs its TLS caches back.

Reimplemented from FMalloc.

◆ OnMallocInitialized()

virtual void FMallocPurgatoryProxy::OnMallocInitialized ( )
inlineoverridevirtual

Notifies the malloc implementation that initialization of all allocators in GMalloc is complete, so it's safe to initialize any extra features that require "regular" allocations

Reimplemented from FMalloc.

◆ OnPostFork()

virtual void FMallocPurgatoryProxy::OnPostFork ( )
inlineoverridevirtual

Notifies the malloc implementation that the process has forked so we can try and avoid dirtying pre-fork pages.

Reimplemented from FMalloc.

◆ OnPreFork()

virtual void FMallocPurgatoryProxy::OnPreFork ( )
inlineoverridevirtual

Notifies the malloc implementation that the process is about to fork. May be used to trim caches etc.

Reimplemented from FMalloc.

◆ QuantizeSize()

virtual SIZE_T FMallocPurgatoryProxy::QuantizeSize ( SIZE_T  Count,
uint32  Alignment 
)
inlineoverridevirtual

For some allocators this will return the actual size that should be requested to eliminate internal fragmentation. The return value will always be >= Count. This can be used to grow and shrink containers to optimal sizes. This call is always fast and threadsafe with no locking.

Reimplemented from FMalloc.

◆ Realloc()

virtual void * FMallocPurgatoryProxy::Realloc ( void Ptr,
SIZE_T  NewSize,
uint32  Alignment 
)
inlineoverridevirtual

Realloc

Implements FMalloc.

◆ SetupTLSCachesOnCurrentThread()

virtual void FMallocPurgatoryProxy::SetupTLSCachesOnCurrentThread ( )
inlineoverridevirtual

Set up TLS caches on the current thread. These are the threads that we can trim.

Reimplemented from FMalloc.

◆ Trim()

virtual void FMallocPurgatoryProxy::Trim ( bool  bTrimThreadCaches)
inlineoverridevirtual

Releases as much memory as possible. Must be called from the main thread.

Reimplemented from FMalloc.

◆ ValidateHeap()

virtual bool FMallocPurgatoryProxy::ValidateHeap ( )
inlineoverridevirtual

Validates the allocator's heap

Reimplemented from FMalloc.


The documentation for this class was generated from the following file: