UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::GC::FWeakReferenceEliminator Class Referencefinal
+ Inheritance diagram for UE::GC::FWeakReferenceEliminator:

Public Member Functions

 FWeakReferenceEliminator ()=default
 
virtual void HandleObjectReference (UObject *&InObject, const UObject *InReferencingObject, const FProperty *InReferencingProperty) override
 
virtual bool MarkWeakObjectReferenceForClearing (UObject **WeakReference, UObject *ReferenceOwner) override
 
- Public Member Functions inherited from UE::GC::TReachabilityCollectorBase< EGCOptions::None >
virtual bool IsIgnoringArchetypeRef () const override final
 
virtual bool IsIgnoringTransient () const override final
 
virtual bool NeedsInitialReferences () const override final
 
virtual void AllowEliminatingReferences (bool bAllow) override final
 
virtual void SetIsProcessingNativeReferences (bool bIsNative) override final
 
virtual bool NeedsPropertyReferencer () const override final
 
- Public Member Functions inherited from FReferenceCollector
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 void SetSerializedProperty (class FProperty *Inproperty)
 
virtual class FPropertyGetSerializedProperty () const
 
virtual bool IsProcessingNativeReferences () const
 
FReferenceCollectorArchiveGetVerySlowReferenceCollectorArchive ()
 

Additional Inherited Members

- Protected Member Functions inherited from UE::GC::TReachabilityCollectorBase< EGCOptions::None >
FORCEINLINE EKillable MayKill () const
 
- Protected Member Functions inherited from FReferenceCollector
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)
 
- Protected Attributes inherited from UE::GC::TReachabilityCollectorBase< EGCOptions::None >
bool bAllowEliminatingReferences
 
EOrigin CurrentOrigin
 

Constructor & Destructor Documentation

◆ FWeakReferenceEliminator()

UE::GC::FWeakReferenceEliminator::FWeakReferenceEliminator ( )
default

Member Function Documentation

◆ HandleObjectReference()

virtual void UE::GC::FWeakReferenceEliminator::HandleObjectReference ( UObject *&  InObject,
const UObject InReferencingObject,
const FProperty InReferencingProperty 
)
inlineoverridevirtual

Handle object reference. Called by AddReferencedObject.

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

Implements FReferenceCollector.

◆ MarkWeakObjectReferenceForClearing()

virtual bool UE::GC::FWeakReferenceEliminator::MarkWeakObjectReferenceForClearing ( UObject **  WeakReference,
UObject ReferenceOwner 
)
inlineoverridevirtual

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 from FReferenceCollector.


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