UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FReferenceCollector Class Referenceabstract

#include <UObjectGlobals.h>

+ Inheritance diagram for FReferenceCollector:

Classes

struct  AROPrivate
 

Public Member Functions

virtual COREUOBJECT_API ~FReferenceCollector ()
 
virtual COREUOBJECT_API void AddStableReference (TObjectPtr< UObject > *Object)
 
virtual COREUOBJECT_API void AddStableReferenceArray (TArray< TObjectPtr< UObject > > *Objects)
 
virtual COREUOBJECT_API void AddStableReferenceSet (TSet< TObjectPtr< UObject > > *Objects)
 
template<typename KeyType , typename ValueType , typename Allocator , typename KeyFuncs >
void AddStableReferenceMap (TMapBase< KeyType, ValueType, Allocator, KeyFuncs > &Map)
 
virtual COREUOBJECT_API void AddStableReference (UObject **Object)
 
virtual COREUOBJECT_API void AddStableReferenceArray (TArray< UObject * > *Objects)
 
virtual COREUOBJECT_API void AddStableReferenceSet (TSet< UObject * > *Objects)
 
template<class UObjectType >
void AddStableReference (UObjectType **Object)
 
template<class UObjectType >
void AddStableReferenceArray (TArray< UObjectType * > *Objects)
 
template<class UObjectType >
void AddStableReferenceSet (TSet< UObjectType * > *Objects)
 
template<class UObjectType >
UE_FORCEINLINE_HINT void AddStableReference (TObjectPtr< UObjectType > *Object)
 
template<class UObjectType >
UE_FORCEINLINE_HINT void AddStableReferenceArray (TArray< TObjectPtr< UObjectType > > *Objects)
 
template<class UObjectType >
UE_FORCEINLINE_HINT void AddStableReferenceSet (TSet< TObjectPtr< UObjectType > > *Objects)
 
template<class UObjectType >
void AddReferencedObject (UObjectType *&Object, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
template<class UObjectType >
void AddReferencedObject (const UObjectType *&Object, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
template<class UObjectType >
void AddReferencedObjects (TArray< UObjectType * > &ObjectArray, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
template<class UObjectType >
void AddReferencedObjects (TArray< const UObjectType * > &ObjectArray, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
template<class UObjectType >
void AddReferencedObjects (TSet< UObjectType * > &ObjectSet, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
template<typename KeyType , typename ValueType , typename Allocator , typename KeyFuncs >
void AddReferencedObjects (TMapBase< KeyType *, ValueType, Allocator, KeyFuncs > &Map, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
template<typename KeyType , typename ValueType , typename Allocator , typename KeyFuncs >
void AddReferencedObjects (TMapBase< KeyType, ValueType *, Allocator, KeyFuncs > &Map, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
template<typename KeyType , typename ValueType , typename Allocator , typename KeyFuncs >
void AddReferencedObjects (TMapBase< KeyType *, ValueType *, Allocator, KeyFuncs > &Map, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
template<class UObjectType >
void AddReferencedObject (TObjectPtr< UObjectType > &Object, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
template<class UObjectType >
void AddReferencedObject (TObjectPtr< const UObjectType > &Object, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
template<class UObjectType >
void AddReferencedObjects (TArray< TObjectPtr< UObjectType > > &ObjectArray, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
template<class UObjectType >
void AddReferencedObjects (TArray< TObjectPtr< const UObjectType > > &ObjectArray, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
template<class UObjectType >
void AddReferencedObjects (TSet< TObjectPtr< UObjectType > > &ObjectSet, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
template<typename KeyType , typename ValueType , typename Allocator , typename KeyFuncs >
void AddReferencedObjects (TMapBase< TObjectPtr< KeyType >, ValueType, Allocator, KeyFuncs > &Map, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
template<typename KeyType , typename ValueType , typename Allocator , typename KeyFuncs >
void AddReferencedObjects (TMapBase< KeyType, TObjectPtr< ValueType >, Allocator, KeyFuncs > &Map, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
template<typename KeyType , typename ValueType , typename Allocator , typename KeyFuncs >
void AddReferencedObjects (TMapBase< TObjectPtr< KeyType >, TObjectPtr< ValueType >, Allocator, KeyFuncs > &Map, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
template<typename T >
void AddReferencedObject (TWeakObjectPtr< T > &P, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
COREUOBJECT_API void AddReferencedObject (FWeakObjectPtr &P, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
COREUOBJECT_API void AddReferencedObjects (const UScriptStruct *&ScriptStruct, void *Instance, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
COREUOBJECT_API void AddReferencedObjects (TObjectPtr< const UScriptStruct > &ScriptStruct, void *Instance, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
COREUOBJECT_API void AddReferencedObjects (TWeakObjectPtr< const UScriptStruct > &ScriptStruct, void *Instance, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
COREUOBJECT_API void AddPropertyReferences (const UStruct *Struct, void *Instance, const UObject *ReferencingObject=nullptr)
 
COREUOBJECT_API void AddPropertyReferencesWithStructARO (const UScriptStruct *Struct, void *Instance, const UObject *ReferencingObject=nullptr)
 
COREUOBJECT_API void AddPropertyReferencesWithStructARO (const UClass *Class, void *Instance, const UObject *ReferencingObject=nullptr)
 
COREUOBJECT_API void AddPropertyReferencesLimitedToObjectProperties (const UStruct *Struct, void *Instance, const UObject *ReferencingObject=nullptr)
 
virtual bool NeedsPropertyReferencer () const
 
virtual bool IsIgnoringArchetypeRef () const =0
 
virtual bool IsIgnoringTransient () const =0
 
virtual void AllowEliminatingReferences (bool bAllow)
 
virtual void SetSerializedProperty (class FProperty *Inproperty)
 
virtual class FPropertyGetSerializedProperty () const
 
virtual bool MarkWeakObjectReferenceForClearing (UObject **WeakReference, UObject *ReferenceOwner)
 
virtual void SetIsProcessingNativeReferences (bool bIsNative)
 
virtual bool IsProcessingNativeReferences () const
 
virtual bool NeedsInitialReferences () const
 
FReferenceCollectorArchiveGetVerySlowReferenceCollectorArchive ()
 

Protected Member Functions

virtual void HandleObjectReference (UObject *&InObject, const UObject *InReferencingObject, const FProperty *InReferencingProperty)=0
 
virtual void HandleObjectReferences (UObject **InObjects, const int32 ObjectNum, const UObject *InReferencingObject, const FProperty *InReferencingProperty)
 
virtual COREUOBJECT_API void HandleObjectReferences (FObjectPtr *InObjects, const int32 ObjectNum, const UObject *InReferencingObject, const FProperty *InReferencingProperty)
 

Detailed Description

Used by garbage collector to collect references via virtual AddReferencedObjects calls

Constructor & Destructor Documentation

◆ ~FReferenceCollector()

FReferenceCollector::~FReferenceCollector ( )
virtualdefault

Member Function Documentation

◆ AddPropertyReferences()

void FReferenceCollector::AddPropertyReferences ( const UStruct Struct,
void Instance,
const UObject ReferencingObject = nullptr 
)

Adds all strong property references from a struct instance, but not the struct itself. Skips AddStructReferencedObjects.

◆ AddPropertyReferencesLimitedToObjectProperties()

void FReferenceCollector::AddPropertyReferencesLimitedToObjectProperties ( const UStruct Struct,
void Instance,
const UObject ReferencingObject = nullptr 
)

Internal use only. Same as AddPropertyReferences but skips field path and interface properties. Might get removed.

◆ AddPropertyReferencesWithStructARO() [1/2]

void FReferenceCollector::AddPropertyReferencesWithStructARO ( const UClass Class,
void Instance,
const UObject ReferencingObject = nullptr 
)

Same as AddPropertyReferences but also calls AddStructReferencedObjects on all nested structs

◆ AddPropertyReferencesWithStructARO() [2/2]

void FReferenceCollector::AddPropertyReferencesWithStructARO ( const UScriptStruct Struct,
void Instance,
const UObject ReferencingObject = nullptr 
)

Same as AddPropertyReferences but also calls AddStructReferencedObjects on Struct and all nested structs

◆ AddReferencedObject() [1/6]

template<class UObjectType >
void FReferenceCollector::AddReferencedObject ( const UObjectType *&  Object,
const UObject ReferencingObject = nullptr,
const FProperty ReferencingProperty = nullptr 
)
inline

Adds const object reference, this reference can still be nulled out if forcefully collected.

Parameters
ObjectReferenced object.
ReferencingObjectReferencing object (if available).
ReferencingPropertyReferencing property (if available).

◆ AddReferencedObject() [2/6]

void FReferenceCollector::AddReferencedObject ( FWeakObjectPtr P,
const UObject ReferencingObject = nullptr,
const FProperty ReferencingProperty = nullptr 
)

◆ AddReferencedObject() [3/6]

template<class UObjectType >
void FReferenceCollector::AddReferencedObject ( TObjectPtr< const UObjectType > &  Object,
const UObject ReferencingObject = nullptr,
const FProperty ReferencingProperty = nullptr 
)
inline

Adds const object reference, this reference can still be nulled out if forcefully collected.

Parameters
ObjectReferenced object.
ReferencingObjectReferencing object (if available).
ReferencingPropertyReferencing property (if available).

◆ AddReferencedObject() [4/6]

template<class UObjectType >
void FReferenceCollector::AddReferencedObject ( TObjectPtr< UObjectType > &  Object,
const UObject ReferencingObject = nullptr,
const FProperty ReferencingProperty = nullptr 
)
inline

Adds object reference.

Parameters
ObjectReferenced object.
ReferencingObjectReferencing object (if available).
ReferencingPropertyReferencing property (if available).

◆ AddReferencedObject() [5/6]

template<typename T >
void FReferenceCollector::AddReferencedObject ( TWeakObjectPtr< T > &  P,
const UObject ReferencingObject = nullptr,
const FProperty ReferencingProperty = nullptr 
)
inline

◆ AddReferencedObject() [6/6]

template<class UObjectType >
void FReferenceCollector::AddReferencedObject ( UObjectType *&  Object,
const UObject ReferencingObject = nullptr,
const FProperty ReferencingProperty = nullptr 
)
inline

Adds object reference.

Parameters
ObjectReferenced object.
ReferencingObjectReferencing object (if available).
ReferencingPropertyReferencing property (if available).

◆ AddReferencedObjects() [1/15]

void FReferenceCollector::AddReferencedObjects ( const UScriptStruct *&  ScriptStruct,
void Instance,
const UObject ReferencingObject = nullptr,
const FProperty ReferencingProperty = nullptr 
)

Adds all strong property references from a UScriptStruct instance including the struct itself

Only necessary to handle cases of an unreflected/non-UPROPERTY struct that wants to have references emitted.

Calls AddStructReferencedObjects() but not recursively on nested structs.

This and other AddPropertyReferences functions will hopefully merge into a single function in the future. They're kept separate initially to maintain exact semantics while replacing the much slower SerializeBin/TPropertyValueIterator/GetVerySlowReferenceCollectorArchive paths.

◆ AddReferencedObjects() [2/15]

template<class UObjectType >
void FReferenceCollector::AddReferencedObjects ( TArray< const UObjectType * > &  ObjectArray,
const UObject ReferencingObject = nullptr,
const FProperty ReferencingProperty = nullptr 
)
inline

Adds references to an array of const objects, these objects can still be nulled out if forcefully collected.

Parameters
ObjectArrayReferenced objects array.
ReferencingObjectReferencing object (if available).
ReferencingPropertyReferencing property (if available).

◆ AddReferencedObjects() [3/15]

template<class UObjectType >
void FReferenceCollector::AddReferencedObjects ( TArray< TObjectPtr< const UObjectType > > &  ObjectArray,
const UObject ReferencingObject = nullptr,
const FProperty ReferencingProperty = nullptr 
)
inline

Adds references to an array of const objects, these objects can still be nulled out if forcefully collected.

Parameters
ObjectArrayReferenced objects array.
ReferencingObjectReferencing object (if available).
ReferencingPropertyReferencing property (if available).

◆ AddReferencedObjects() [4/15]

template<class UObjectType >
void FReferenceCollector::AddReferencedObjects ( TArray< TObjectPtr< UObjectType > > &  ObjectArray,
const UObject ReferencingObject = nullptr,
const FProperty ReferencingProperty = nullptr 
)
inline

Adds references to an array of objects.

Parameters
ObjectArrayReferenced objects array.
ReferencingObjectReferencing object (if available).
ReferencingPropertyReferencing property (if available).

◆ AddReferencedObjects() [5/15]

template<class UObjectType >
void FReferenceCollector::AddReferencedObjects ( TArray< UObjectType * > &  ObjectArray,
const UObject ReferencingObject = nullptr,
const FProperty ReferencingProperty = nullptr 
)
inline

Adds references to an array of objects.

Parameters
ObjectArrayReferenced objects array.
ReferencingObjectReferencing object (if available).
ReferencingPropertyReferencing property (if available).

◆ AddReferencedObjects() [6/15]

template<typename KeyType , typename ValueType , typename Allocator , typename KeyFuncs >
void FReferenceCollector::AddReferencedObjects ( TMapBase< KeyType *, ValueType *, Allocator, KeyFuncs > &  Map,
const UObject ReferencingObject = nullptr,
const FProperty ReferencingProperty = nullptr 
)
inline

◆ AddReferencedObjects() [7/15]

template<typename KeyType , typename ValueType , typename Allocator , typename KeyFuncs >
void FReferenceCollector::AddReferencedObjects ( TMapBase< KeyType *, ValueType, Allocator, KeyFuncs > &  Map,
const UObject ReferencingObject = nullptr,
const FProperty ReferencingProperty = nullptr 
)
inline

Adds references to a map of objects.

Parameters
MapReferenced objects map.
ReferencingObjectReferencing object (if available).
ReferencingPropertyReferencing property (if available).

◆ AddReferencedObjects() [8/15]

template<typename KeyType , typename ValueType , typename Allocator , typename KeyFuncs >
void FReferenceCollector::AddReferencedObjects ( TMapBase< KeyType, TObjectPtr< ValueType >, Allocator, KeyFuncs > &  Map,
const UObject ReferencingObject = nullptr,
const FProperty ReferencingProperty = nullptr 
)
inline

◆ AddReferencedObjects() [9/15]

template<typename KeyType , typename ValueType , typename Allocator , typename KeyFuncs >
void FReferenceCollector::AddReferencedObjects ( TMapBase< KeyType, ValueType *, Allocator, KeyFuncs > &  Map,
const UObject ReferencingObject = nullptr,
const FProperty ReferencingProperty = nullptr 
)
inline

◆ AddReferencedObjects() [10/15]

template<typename KeyType , typename ValueType , typename Allocator , typename KeyFuncs >
void FReferenceCollector::AddReferencedObjects ( TMapBase< TObjectPtr< KeyType >, TObjectPtr< ValueType >, Allocator, KeyFuncs > &  Map,
const UObject ReferencingObject = nullptr,
const FProperty ReferencingProperty = nullptr 
)
inline

◆ AddReferencedObjects() [11/15]

template<typename KeyType , typename ValueType , typename Allocator , typename KeyFuncs >
void FReferenceCollector::AddReferencedObjects ( TMapBase< TObjectPtr< KeyType >, ValueType, Allocator, KeyFuncs > &  Map,
const UObject ReferencingObject = nullptr,
const FProperty ReferencingProperty = nullptr 
)
inline

Adds references to a map of objects.

Parameters
ObjectArrayReferenced objects map.
ReferencingObjectReferencing object (if available).
ReferencingPropertyReferencing property (if available).

◆ AddReferencedObjects() [12/15]

void FReferenceCollector::AddReferencedObjects ( TObjectPtr< const UScriptStruct > &  ScriptStruct,
void Instance,
const UObject ReferencingObject = nullptr,
const FProperty ReferencingProperty = nullptr 
)

◆ AddReferencedObjects() [13/15]

template<class UObjectType >
void FReferenceCollector::AddReferencedObjects ( TSet< TObjectPtr< UObjectType > > &  ObjectSet,
const UObject ReferencingObject = nullptr,
const FProperty ReferencingProperty = nullptr 
)
inline

Adds references to a set of objects.

Parameters
ObjectSetReferenced objects set.
ReferencingObjectReferencing object (if available).
ReferencingPropertyReferencing property (if available).

◆ AddReferencedObjects() [14/15]

template<class UObjectType >
void FReferenceCollector::AddReferencedObjects ( TSet< UObjectType * > &  ObjectSet,
const UObject ReferencingObject = nullptr,
const FProperty ReferencingProperty = nullptr 
)
inline

Adds references to a set of objects.

Parameters
ObjectSetReferenced objects set.
ReferencingObjectReferencing object (if available).
ReferencingPropertyReferencing property (if available).

◆ AddReferencedObjects() [15/15]

void FReferenceCollector::AddReferencedObjects ( TWeakObjectPtr< const UScriptStruct > &  ScriptStruct,
void Instance,
const UObject ReferencingObject = nullptr,
const FProperty ReferencingProperty = nullptr 
)

◆ AddStableReference() [1/4]

void FReferenceCollector::AddStableReference ( TObjectPtr< UObject > *  Object)
virtual

Preferred way to add a reference that allows batching. Object must outlive GC tracing, can't be used for temporary/stack references.

Reimplemented in UE::GC::TReachabilityCollector< Options >, and UE::GC::TDebugReachabilityCollector< Options >.

◆ AddStableReference() [2/4]

template<class UObjectType >
UE_FORCEINLINE_HINT void FReferenceCollector::AddStableReference ( TObjectPtr< UObjectType > *  Object)
inline

◆ AddStableReference() [3/4]

void FReferenceCollector::AddStableReference ( UObject **  Object)
virtual

Preferred way to add a reference that allows batching. Object must outlive GC tracing, can't be used for temporary/stack references.

Reimplemented in UE::GC::TReachabilityCollector< Options >, and UE::GC::TDebugReachabilityCollector< Options >.

◆ AddStableReference() [4/4]

template<class UObjectType >
void FReferenceCollector::AddStableReference ( UObjectType **  Object)
inline

◆ AddStableReferenceArray() [1/4]

void FReferenceCollector::AddStableReferenceArray ( TArray< TObjectPtr< UObject > > *  Objects)
virtual

Preferred way to add a reference array that allows batching. Can't be used for temporary/stack array.

Reimplemented in UE::GC::TReachabilityCollector< Options >, and UE::GC::TDebugReachabilityCollector< Options >.

◆ AddStableReferenceArray() [2/4]

template<class UObjectType >
UE_FORCEINLINE_HINT void FReferenceCollector::AddStableReferenceArray ( TArray< TObjectPtr< UObjectType > > *  Objects)
inline

◆ AddStableReferenceArray() [3/4]

void FReferenceCollector::AddStableReferenceArray ( TArray< UObject * > *  Objects)
virtual

Preferred way to add a reference array that allows batching. Can't be used for temporary/stack array.

Reimplemented in UE::GC::TReachabilityCollector< Options >, and UE::GC::TDebugReachabilityCollector< Options >.

◆ AddStableReferenceArray() [4/4]

template<class UObjectType >
void FReferenceCollector::AddStableReferenceArray ( TArray< UObjectType * > *  Objects)
inline

◆ AddStableReferenceMap()

template<typename KeyType , typename ValueType , typename Allocator , typename KeyFuncs >
void FReferenceCollector::AddStableReferenceMap ( TMapBase< KeyType, ValueType, Allocator, KeyFuncs > &  Map)
inline

◆ AddStableReferenceSet() [1/4]

void FReferenceCollector::AddStableReferenceSet ( TSet< TObjectPtr< UObject > > *  Objects)
virtual

Preferred way to add a reference set that allows batching. Can't be used for temporary/stack set.

Reimplemented in UE::GC::TReachabilityCollector< Options >, and UE::GC::TDebugReachabilityCollector< Options >.

◆ AddStableReferenceSet() [2/4]

template<class UObjectType >
UE_FORCEINLINE_HINT void FReferenceCollector::AddStableReferenceSet ( TSet< TObjectPtr< UObjectType > > *  Objects)
inline

◆ AddStableReferenceSet() [3/4]

void FReferenceCollector::AddStableReferenceSet ( TSet< UObject * > *  Objects)
virtual

Preferred way to add a reference set that allows batching. Can't be used for temporary/stack set.

Reimplemented in UE::GC::TReachabilityCollector< Options >, and UE::GC::TDebugReachabilityCollector< Options >.

◆ AddStableReferenceSet() [4/4]

template<class UObjectType >
void FReferenceCollector::AddStableReferenceSet ( TSet< UObjectType * > *  Objects)
inline

◆ AllowEliminatingReferences()

virtual void FReferenceCollector::AllowEliminatingReferences ( bool  bAllow)
inlinevirtual

Allows reference elimination by this collector.

Reimplemented in UE::GC::TReachabilityCollectorBase< Options >, and UE::GC::TReachabilityCollectorBase< EGCOptions::None >.

◆ GetSerializedProperty()

virtual class FProperty * FReferenceCollector::GetSerializedProperty ( ) const
inlinevirtual

Gets the property that is currently being serialized

Reimplemented in FReferenceFinder.

◆ GetVerySlowReferenceCollectorArchive()

FReferenceCollectorArchive & FReferenceCollector::GetVerySlowReferenceCollectorArchive ( )
inline

Get archive to collect references via SerializeBin / Serialize.

NOTE: Prefer using AddPropertyReferences or AddReferencedObjects(const UScriptStruct&) instead, they're much faster.

◆ HandleObjectReference()

virtual void FReferenceCollector::HandleObjectReference ( UObject *&  InObject,
const UObject InReferencingObject,
const FProperty InReferencingProperty 
)
protectedpure virtual

◆ HandleObjectReferences() [1/2]

void FReferenceCollector::HandleObjectReferences ( FObjectPtr InObjects,
const int32  ObjectNum,
const UObject InReferencingObject,
const FProperty InReferencingProperty 
)
protectedvirtual

Handle multiple object references. Called by AddReferencedObjects. DEFAULT IMPLEMENTATION IS SLOW as it calls HandleObjectReference multiple times. In order to optimize it, provide your own implementation.

Parameters
ObjectReferenced object.
ReferencingObjectReferencing object (if available).
ReferencingPropertyReferencing property (if available).

◆ HandleObjectReferences() [2/2]

virtual void FReferenceCollector::HandleObjectReferences ( UObject **  InObjects,
const int32  ObjectNum,
const UObject InReferencingObject,
const FProperty InReferencingProperty 
)
inlineprotectedvirtual

Handle multiple object references. Called by AddReferencedObjects. DEFAULT IMPLEMENTATION IS SLOW as it calls HandleObjectReference multiple times. In order to optimize it, provide your own implementation.

Parameters
ObjectReferenced object.
ReferencingObjectReferencing object (if available).
ReferencingPropertyReferencing property (if available).

Reimplemented in UE::GC::TReachabilityCollector< Options >, PackageReloadInternal::FReplaceObjectReferencesArchive, FPurgingReferenceCollector, UE::GC::TDefaultCollector< ProcessorType >, UE::GC::TDefaultCollector< FAllReferencesProcessor >, UE::GC::TDebugReachabilityCollector< Options >, UE::ReferenceChainSearch::TReferenceSearchBase< Derived >::FCollector< bNeedsPropertyReferencer >, and FPersistentFrameCollector.

◆ IsIgnoringArchetypeRef()

◆ IsIgnoringTransient()

◆ IsProcessingNativeReferences()

virtual bool FReferenceCollector::IsProcessingNativeReferences ( ) const
inlinevirtual

If true, this collector is currently processing native references (true by default).

◆ MarkWeakObjectReferenceForClearing()

virtual bool FReferenceCollector::MarkWeakObjectReferenceForClearing ( UObject **  WeakReference,
UObject ReferenceOwner 
)
inlinevirtual

Marks a specific object reference as a weak reference. This does not affect GC but will be freed at a later point The default behavior returns false as weak references must be explicitly supported

Reimplemented in UE::ReferenceChainSearch::TReferenceSearchBase< Derived >::FCollector< bNeedsPropertyReferencer >, UE::GC::TReachabilityCollector< Options >, UE::GC::TDebugReachabilityCollector< Options >, UE::GC::FWeakReferenceEliminator, and FAllReferencesCollector.

◆ NeedsInitialReferences()

virtual bool FReferenceCollector::NeedsInitialReferences ( ) const
inlinevirtual

Used by parallel reachability analysis to pre-collect and then exclude some initial FGCObject references

Reimplemented in UE::GC::TReachabilityCollectorBase< Options >, and UE::GC::TReachabilityCollectorBase< EGCOptions::None >.

◆ NeedsPropertyReferencer()

virtual bool FReferenceCollector::NeedsPropertyReferencer ( ) const
inlinevirtual

Make Add[OnlyObject]PropertyReference/AddReferencedObjects(UScriptStruct) use AddReferencedObjects(UObject*&) callbacks with ReferencingObject and ReferencingProperty context supplied and check for null references before making a callback.

Return false to use context free AddStableReference callbacks without null checks that avoid sync cache misses when batch processing references.

Reimplemented in UE::ReferenceChainSearch::TReferenceSearchBase< Derived >::FCollector< bNeedsPropertyReferencer >, UE::GC::TReachabilityCollectorBase< Options >, and UE::GC::TReachabilityCollectorBase< EGCOptions::None >.

◆ SetIsProcessingNativeReferences()

virtual void FReferenceCollector::SetIsProcessingNativeReferences ( bool  bIsNative)
inlinevirtual

Sets whether this collector is currently processing native references or not.

Reimplemented in UE::GC::TReachabilityCollectorBase< Options >, and UE::GC::TReachabilityCollectorBase< EGCOptions::None >.

◆ SetSerializedProperty()

virtual void FReferenceCollector::SetSerializedProperty ( class FProperty Inproperty)
inlinevirtual

Sets the property that is currently being serialized

Reimplemented in FReferenceFinder.


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