UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FLinkerPlaceholderBase Class Reference

#include <LinkerPlaceholderBase.h>

+ Inheritance diagram for FLinkerPlaceholderBase:

Public Member Functions

 FLinkerPlaceholderBase ()
 
virtual ~FLinkerPlaceholderBase ()
 
bool AddReferencingPropertyValue (FFieldVariant ReferencingProperty, void *DataPtr)
 
virtual bool HasKnownReferences () const
 
virtual int32 ResolveAllPlaceholderReferences (UObject *ReplacementObj)
 
void SetupPlaceholderSubobject (ULinkerPlaceholderExportObject *PlaceholderSubobject)
 
bool IsDeferredSubobject () const
 
TArray< ULinkerPlaceholderExportObject * > & GetSubobjectPlaceholders ()
 
bool HasBeenFullyResolved () const
 
virtual UObjectGetPlaceholderAsUObject () bool IsMarkedResolved() const
 

Public Attributes

FPackageIndex PackageIndex
 
TWeakObjectPtr< const UClassDeferredObjectType
 

Protected Member Functions

void MarkAsResolved ()
 

Friends

class FLinkerPlaceholderObjectImpl
 

Constructor & Destructor Documentation

◆ FLinkerPlaceholderBase()

FLinkerPlaceholderBase::FLinkerPlaceholderBase ( )

◆ ~FLinkerPlaceholderBase()

FLinkerPlaceholderBase::~FLinkerPlaceholderBase ( )
virtual

Member Function Documentation

◆ AddReferencingPropertyValue()

bool FLinkerPlaceholderBase::AddReferencingPropertyValue ( FFieldVariant  ReferencingProperty,
void DataPtr 
)

Attempts to find and store the referencing container object (along with
the specified property), so that we can replace the reference at a later point. Can fail if the container could not be found.

Parameters
ReferencingPropertyThe property whose object-value is referencing this.
DataPtrNot saved off (as it can change), but used to verify that we pick the correct container.
Returns
True if we successfully found a container object and are now tracking it, otherwise false.

◆ GetPlaceholderAsUObject()

virtual UObject * FLinkerPlaceholderBase::GetPlaceholderAsUObject ( ) const
virtual

Some of our internal validation checks rely on UObject compares (between this placeholder and other values). Since it is expected that this is sub-classed by a UObject, then we provide it this pure-virtual for the sub-class to implement (and return itself).

Returns
This as a UObject (null unless overridden by a sub-class). Checks to see if ResolveAllPlaceholderReferences() has been called on this placeholder.
True if ResolveAllPlaceholderReferences() has been called, otherwise false.

◆ GetSubobjectPlaceholders()

TArray< ULinkerPlaceholderExportObject * > & FLinkerPlaceholderBase::GetSubobjectPlaceholders ( )
inline

Returns the list of subobjects that are waiting for this placeholder

◆ HasBeenFullyResolved()

bool FLinkerPlaceholderBase::HasBeenFullyResolved ( ) const

Checks to see if 1) this placeholder has had ResolveAllPlaceholderReferences() called on it, and 2) it doesn't have any more references that have since been added.

Returns
True if ResolveAllPlaceholderReferences() has been ran, and no KNOWN references have been added since.

◆ HasKnownReferences()

bool FLinkerPlaceholderBase::HasKnownReferences ( ) const
virtual

A query method that let's us check to see if this class is currently being referenced by anything (if this returns false, then a referencing property could have forgotten to add itself... or, we've replaced all references).

Returns
True if this has anything stored in its ReferencingProperties container, otherwise false.

Reimplemented in TLinkerImportPlaceholder< PlaceholderType >, TLinkerImportPlaceholder< UClass >, and TLinkerImportPlaceholder< UFunction >.

◆ IsDeferredSubobject()

bool FLinkerPlaceholderBase::IsDeferredSubobject ( ) const
inline

Returns true if this is a deferred subobject (implying the owner will resolve it)

◆ MarkAsResolved()

void FLinkerPlaceholderBase::MarkAsResolved ( )
protected

Flags this placeholder as resolved (so that IsMarkedResolved() and HasBeenFullyResolved() can return true).

◆ ResolveAllPlaceholderReferences()

int32 FLinkerPlaceholderBase::ResolveAllPlaceholderReferences ( UObject ReplacementObj)
virtual

Iterates over all known referencers and attempts to replace their references to this with a new (hopefully proper) UObject.

Parameters
ReplacementObjThe object that you want all references to this replaced with.
Returns
The number of references that were successfully replaced.

Reimplemented in TLinkerImportPlaceholder< PlaceholderType >, TLinkerImportPlaceholder< UClass >, and TLinkerImportPlaceholder< UFunction >.

◆ SetupPlaceholderSubobject()

void FLinkerPlaceholderBase::SetupPlaceholderSubobject ( ULinkerPlaceholderExportObject PlaceholderSubobject)

Friends And Related Symbol Documentation

◆ FLinkerPlaceholderObjectImpl

Member Data Documentation

◆ DeferredObjectType

TWeakObjectPtr<const UClass> FLinkerPlaceholderBase::DeferredObjectType

Also set by the ULinkerLoad that created this instance; keeps track of the type of the original object whose load is being deferred.

◆ PackageIndex

FPackageIndex FLinkerPlaceholderBase::PackageIndex

Set by the ULinkerLoad that created this instance, tracks what import/export this was used in place of.


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