UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FastReferenceCollector.h File Reference

Go to the source code of this file.

Classes

struct  FGCInternals
 
class  FGarbageCollectionTracer
 
class  UE::GC::FPrefetchingObjectIterator
 
struct  UE::GC::FWorkBlock
 
class  UE::GC::FWorkBlockifier
 
struct  UE::GC::FSlowARO
 
struct  UE::GC::FProcessorStats
 
struct  UE::GC::FStructArray
 
struct  UE::GC::FSuspendedStructBatch
 
struct  UE::GC::FWeakReferenceInfo
 
struct  UE::GC::FDebugSchemaStackNode
 
struct  UE::GC::FWorkerContext
 
struct  UE::GC::FDebugSchemaStackScope
 
struct  UE::GC::FDebugSchemaStackNoOpScope
 
struct  UE::GC::Private::FMemberUnpacked
 
struct  UE::GC::Private::FMemberWordUnpacked
 
struct  UE::GC::Private::FStridedReferenceArray
 
struct  UE::GC::Private::FStridedReferenceView
 
struct  UE::GC::Private::FStridedReferenceIterator
 
struct  UE::GC::TDirectDispatcher< ProcessorType >
 
struct  UE::GC::TGetDispatcherType< CollectorType, ProcessorType, class >
 
class  UE::GC::TFastReferenceCollector< ProcessorType, CollectorType >
 
class  UE::GC::TDefaultCollector< ProcessorType >
 
class  FSimpleReferenceProcessorBase
 

Namespaces

namespace  UE
 
namespace  UE::GC
 
namespace  UE::GC::Private
 

Typedefs

using FTokenInfo = UE::GC::FMemberInfo
 
using EGCTokenType = UE::GC::EOrigin
 
using FGCArrayStruct = UE::GC::FWorkerContext
 
using UE::GC::FTokenId = FMemberId
 
using UE::GC::ETokenlessId = EMemberlessId
 

Enumerations

enum class  EGCOptions : uint32 {
  None = 0 , Parallel = 1 << 0 , AutogenerateSchemas = 1 << 1 , UE_DEPRECATED =(5.4, "WithPendingKill should no longer be used. Use EliminateGarbage.") = 1 << 2 ,
  EliminateGarbage = 1 << 2 , IncrementalReachability = 1 << 3
}
 
enum class  UE::GC::ELoot { UE::GC::Nothing , UE::GC::Block , UE::GC::ARO , UE::GC::Context }
 

Functions

 ENUM_CLASS_FLAGS (EGCOptions)
 
constexpr bool IsParallel (EGCOptions Options)
 
constexpr bool IsEliminatingGarbage (EGCOptions Options)
 
constexpr bool IsPendingKill (EGCOptions Options)
 
void UE::GC::PadObjectArray (TArray< UObject * > &Objects)
 
FORCEINLINE FStridedReferenceIterator UE::GC::Private::begin (FStridedReferenceView View)
 
FORCEINLINE FStridedReferenceIterator UE::GC::Private::end (FStridedReferenceView View)
 
FORCEINLINE int32 UE::GC::Private::GetNum (FStridedReferenceView View)
 
FORCEINLINE FStridedReferenceView UE::GC::Private::ToView (FStridedReferenceArray In)
 
FORCEINLINE uint8UE::GC::Private::GetSetData (FScriptSet &Set)
 
FORCEINLINE const uint8UE::GC::Private::GetSetData (const FScriptSet &Set)
 
template<class DispatcherType >
FORCENOINLINE void UE::GC::Private::VisitNestedStructMembers (DispatcherType &Dispatcher, FSchemaView Schema, uint8 *Instance)
 
template<class DispatcherType >
FORCEINLINE_DEBUGGABLE void UE::GC::Private::VisitStructs (DispatcherType &Dispatcher, FSchemaView StructSchema, uint8 *It, const int32 Num)
 
template<class DispatcherType , class ArrayType >
FORCEINLINE_DEBUGGABLE void UE::GC::Private::VisitStructArray (DispatcherType &Dispatcher, FSchemaView StructSchema, ArrayType &Array)
 
template<class DispatcherType >
FORCEINLINE_DEBUGGABLE void UE::GC::Private::VisitStructSet (DispatcherType &Dispatcher, FSchemaView StructSchema, FScriptSet &Set)
 
template<class DispatcherType >
FORCEINLINE_DEBUGGABLE void UE::GC::Private::VisitFieldPath (DispatcherType &Dispatcher, FFieldPath &FieldPath, EOrigin Origin, uint32 MemberIdx)
 
template<class DispatcherType >
FORCEINLINE_DEBUGGABLE void UE::GC::Private::VisitFieldPathArray (DispatcherType &Dispatcher, TArray< FFieldPath > &FieldPaths, EOrigin Origin, uint32 MemberIdx)
 
template<class DispatcherType >
FORCEINLINE_DEBUGGABLE void UE::GC::Private::VisitOptional (DispatcherType &Dispatcher, FSchemaView StructSchema, uint8 *Instance)
 
template<class DispatcherType >
FORCEINLINE_DEBUGGABLE void UE::GC::Private::VisitDynamicallyTypedValue (DispatcherType &Dispatcher, UE::FDynamicallyTypedValue &Value)
 
template<class DispatcherType >
FORCEINLINE_DEBUGGABLE void UE::GC::Private::CallARO (DispatcherType &Dispatcher, UObject *Instance, FMemberWord Word)
 
template<class DispatcherType >
FORCEINLINE_DEBUGGABLE void UE::GC::Private::CallARO (DispatcherType &Dispatcher, uint8 *Instance, FMemberWord Word)
 
template<class DispatcherType >
FORCEINLINE_DEBUGGABLE void UE::GC::Private::CallSlowARO (DispatcherType &Dispatcher, uint32 SlowAROIdx, UObject *Instance, uint32 MemberIdx)
 
template<class DispatcherType >
FORCEINLINE void UE::GC::Private::CallSlowARO (DispatcherType &, uint32 SlowAROIdx, uint8 *Instance, uint32 MemberIdx)
 
template<typename ObjectType >
FORCEINLINE EOrigin UE::GC::Private::GetSchemaOrigin (FSchemaView Schema, ObjectType *Instance)
 
template<class DispatcherType , typename ObjectType >
FORCEINLINE_DEBUGGABLE void UE::GC::Private::VisitMembers (DispatcherType &Dispatcher, FSchemaView Schema, ObjectType *Instance)
 
template<class DispatcherType >
void UE::GC::Private::VisitNestedStructMembers (DispatcherType &Dispatcher, FSchemaView Schema, uint8 *Instance)
 
template<class CollectorType , class ProcessorType >
TDirectDispatcher< ProcessorType > UE::GC::GetDispatcher (CollectorType &Collector, ProcessorType &Processor, FWorkerContext &Context)
 
ELoot UE::GC::StealWork (FWorkerContext &Context, FReferenceCollector &Collector, FWorkBlock *&OutBlock, EGCOptions Options)
 
void UE::GC::SuspendWork (FWorkerContext &Context)
 
void UE::GC::ProcessAsync (void(*ProcessSync)(void *, FWorkerContext &), void *Processor, FWorkerContext &InContext)
 
COREUOBJECT_API int32 GetNumCollectReferenceWorkers ()
 

Variables

constexpr EGCOptions UE::GC::DefaultOptions = EGCOptions::AutogenerateSchemas
 

Typedef Documentation

◆ EGCTokenType

◆ FGCArrayStruct

◆ FTokenInfo

Enumeration Type Documentation

◆ EGCOptions

enum class EGCOptions : uint32
strong
Enumerator
None 
Parallel 
AutogenerateSchemas 
UE_DEPRECATED 
EliminateGarbage 
IncrementalReachability 

Function Documentation

◆ ENUM_CLASS_FLAGS()

ENUM_CLASS_FLAGS ( EGCOptions  )

◆ GetNumCollectReferenceWorkers()

COREUOBJECT_API int32 GetNumCollectReferenceWorkers ( )

◆ IsEliminatingGarbage()

constexpr bool IsEliminatingGarbage ( EGCOptions  Options)
inlineconstexpr

◆ IsParallel()

constexpr bool IsParallel ( EGCOptions  Options)
inlineconstexpr

◆ IsPendingKill()

constexpr bool IsPendingKill ( EGCOptions  Options)
inlineconstexpr