UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
LinkerLoad.cpp File Reference
#include "UObject/LinkerLoad.h"
#include "AssetRegistry/AssetData.h"
#include "HAL/FileManager.h"
#include "Misc/Paths.h"
#include "Stats/StatsMisc.h"
#include "Misc/ConfigCacheIni.h"
#include "HAL/IConsoleManager.h"
#include "Misc/SlowTask.h"
#include "Async/Async.h"
#include "Misc/ScopedSlowTask.h"
#include "Misc/ObjectThumbnail.h"
#include "Misc/App.h"
#include "UObject/InstanceDataObjectUtils.h"
#include "UObject/MetaData.h"
#include "UObject/LinkerLoadImportBehavior.h"
#include "UObject/ObjectRedirector.h"
#include "UObject/Package.h"
#include "UObject/PackageResourceManager.h"
#include "UObject/PackageResourceIoDispatcherBackend.h"
#include "UObject/PackageTrailer.h"
#include "UObject/PropertyBagRepository.h"
#include "UObject/SoftObjectPath.h"
#include "UObject/UObjectHash.h"
#include "UObject/UObjectSerializeContext.h"
#include "Misc/PackageName.h"
#include "Blueprint/BlueprintSupport.h"
#include "Misc/PackageAccessTrackingOps.h"
#include "Misc/PathViews.h"
#include "Misc/PreloadableFile.h"
#include "Misc/SecureHash.h"
#include "Misc/StringBuilder.h"
#include "ProfilingDebugging/DebuggingDefines.h"
#include "Logging/MessageLog.h"
#include "Logging/TokenizedMessage.h"
#include "ProfilingDebugging/CookStats.h"
#include "UObject/LinkerPlaceholderBase.h"
#include "UObject/LinkerPlaceholderClass.h"
#include "UObject/LinkerPlaceholderExportObject.h"
#include "UObject/LinkerPlaceholderFunction.h"
#include "UObject/LinkerManager.h"
#include "UObject/ObjectSerializeAccessScope.h"
#include "Serialization/DeferredMessageLog.h"
#include "UObject/UObjectThreadContext.h"
#include "Serialization/AsyncLoading.h"
#include "Serialization/ArchiveSerializedPropertyChain.h"
#include "ProfilingDebugging/LoadTimeTracker.h"
#include "ProfilingDebugging/AssetMetadataTrace.h"
#include "HAL/LowLevelMemStats.h"
#include "HAL/ThreadHeartBeat.h"
#include "Internationalization/TextPackageNamespaceUtil.h"
#include "Serialization/BulkData.h"
#include "Serialization/AsyncLoadingPrivate.h"
#include "Serialization/Formatters/BinaryArchiveFormatter.h"
#include "Serialization/Formatters/JsonArchiveInputFormatter.h"
#include "Serialization/ArchiveUObjectFromStructuredArchive.h"
#include "Serialization/StructuredArchiveChildReader.h"
#include "Serialization/UnversionedPropertySerialization.h"
#include "Serialization/LoadTimeTracePrivate.h"
#include "Serialization/EditorBulkData.h"
#include "Serialization/ImportTypeHierarchy.h"
#include "UObject/CoreRedirects.h"
#include "UObject/ICookInfo.h"
#include "UObject/PackageRelocation.h"
#include "Misc/AssetRegistryInterface.h"
#include "Misc/EngineBuildSettings.h"
#include "Internationalization/GatherableTextData.h"
#include "Async/MappedFileHandle.h"
#include "Async/UniqueLock.h"
#include "CoreGlobalsInternal.h"

Classes

struct  FScopedCreateExportCounter
 

Namespaces

namespace  FLinkerDefs
 

Macros

#define LOCTEXT_NAMESPACE   "LinkerLoad"
 

Functions

 DECLARE_STATS_GROUP_VERBOSE (TEXT("Linker Load"), STATGROUP_LinkerLoad, STATCAT_Advanced)
 
 DECLARE_CYCLE_STAT (TEXT("Linker Preload"), STAT_LinkerPreload, STATGROUP_LinkerLoad)
 
 DECLARE_CYCLE_STAT (TEXT("Linker Precache"), STAT_LinkerPrecache, STATGROUP_LinkerLoad)
 
 DECLARE_CYCLE_STAT (TEXT("Linker Serialize"), STAT_LinkerSerialize, STATGROUP_LinkerLoad)
 
 DECLARE_CYCLE_STAT (TEXT("Linker Load Deferred"), STAT_LinkerLoadDeferred, STATGROUP_LinkerLoad)
 
 DECLARE_STATS_GROUP (TEXT("Linker Count"), STATGROUP_LinkerCount, STATCAT_Advanced)
 
 DECLARE_DWORD_ACCUMULATOR_STAT (TEXT("Linker Count"), STAT_LinkerCount, STATGROUP_LinkerCount)
 
 DECLARE_DWORD_ACCUMULATOR_STAT (TEXT("Linker Count (Text Assets)"), STAT_TextAssetLinkerCount, STATGROUP_LinkerCount)
 
 DECLARE_DWORD_ACCUMULATOR_STAT (TEXT("Live Linker Count"), STAT_LiveLinkerCount, STATGROUP_LinkerCount)
 
 DECLARE_FLOAT_ACCUMULATOR_STAT (TEXT("Fixup editor-only flags time"), STAT_EditorOnlyFixupTime, STATGROUP_LinkerCount)
 
 LLM_DEFINE_TAG (UObject_Linker)
 
 LLM_DEFINE_TAG (UObject_FLinkerLoad)
 
void TrackPackageAssetClass (UPackage *Package, FLinkerLoad &LinkerLoad, const TArray< FObjectExport > &Exports)
 
EPackageSegment GetBulkDataPackageSegmentFromFlags (const EBulkDataFlags BulkDataFlags, bool bLoadingFromCookedPackage)
 
bool IsEnforcePackageCompatibleVersionCheck ()
 
UPackageLoadPackageInternal (UPackage *InOuter, const FPackagePath &PackagePath, uint32 LoadFlags, FLinkerLoad *ImportLinker, FArchive *InReaderOverride, const FLinkerInstancingContext *InstancingContext, const FPackagePath *DiffPackagePath)
 
void StaticFindAllImportObjects (TArray< FObjectImport > &InOutImportMap, FPackageIndex InPackageImport, const FPackagePath &PathOfPackageBeingLoaded)
 

Variables

int32 GAllowCookedDataInEditorBuilds = 0
 
int32 GSkipAsyncLoaderForCookedData = 0
 
int32 GEnforcePackageCompatibleVersionCheck = 1
 
const int32 FLinkerDefs::TotalProgressSteps = 5
 

Macro Definition Documentation

◆ LOCTEXT_NAMESPACE

#define LOCTEXT_NAMESPACE   "LinkerLoad"

Function Documentation

◆ DECLARE_CYCLE_STAT() [1/4]

DECLARE_CYCLE_STAT ( TEXT("Linker Load Deferred" ,
STAT_LinkerLoadDeferred  ,
STATGROUP_LinkerLoad   
)

◆ DECLARE_CYCLE_STAT() [2/4]

DECLARE_CYCLE_STAT ( TEXT("Linker Precache" ,
STAT_LinkerPrecache  ,
STATGROUP_LinkerLoad   
)

◆ DECLARE_CYCLE_STAT() [3/4]

DECLARE_CYCLE_STAT ( TEXT("Linker Preload" ,
STAT_LinkerPreload  ,
STATGROUP_LinkerLoad   
)

◆ DECLARE_CYCLE_STAT() [4/4]

DECLARE_CYCLE_STAT ( TEXT("Linker Serialize" ,
STAT_LinkerSerialize  ,
STATGROUP_LinkerLoad   
)

◆ DECLARE_DWORD_ACCUMULATOR_STAT() [1/3]

DECLARE_DWORD_ACCUMULATOR_STAT ( TEXT("Linker Count (Text Assets)")  ,
STAT_TextAssetLinkerCount  ,
STATGROUP_LinkerCount   
)

◆ DECLARE_DWORD_ACCUMULATOR_STAT() [2/3]

DECLARE_DWORD_ACCUMULATOR_STAT ( TEXT("Linker Count" ,
STAT_LinkerCount  ,
STATGROUP_LinkerCount   
)

◆ DECLARE_DWORD_ACCUMULATOR_STAT() [3/3]

DECLARE_DWORD_ACCUMULATOR_STAT ( TEXT("Live Linker Count" ,
STAT_LiveLinkerCount  ,
STATGROUP_LinkerCount   
)

◆ DECLARE_FLOAT_ACCUMULATOR_STAT()

DECLARE_FLOAT_ACCUMULATOR_STAT ( TEXT("Fixup editor-only flags time" ,
STAT_EditorOnlyFixupTime  ,
STATGROUP_LinkerCount   
)

◆ DECLARE_STATS_GROUP()

DECLARE_STATS_GROUP ( TEXT("Linker Count" ,
STATGROUP_LinkerCount  ,
STATCAT_Advanced   
)

◆ DECLARE_STATS_GROUP_VERBOSE()

DECLARE_STATS_GROUP_VERBOSE ( TEXT("Linker Load" ,
STATGROUP_LinkerLoad  ,
STATCAT_Advanced   
)

◆ GetBulkDataPackageSegmentFromFlags()

EPackageSegment GetBulkDataPackageSegmentFromFlags ( const EBulkDataFlags  BulkDataFlags,
bool  bLoadingFromCookedPackage 
)

◆ IsEnforcePackageCompatibleVersionCheck()

bool IsEnforcePackageCompatibleVersionCheck ( )

◆ LLM_DEFINE_TAG() [1/2]

LLM_DEFINE_TAG ( UObject_FLinkerLoad  )

◆ LLM_DEFINE_TAG() [2/2]

LLM_DEFINE_TAG ( UObject_Linker  )

◆ LoadPackageInternal()

UPackage * LoadPackageInternal ( UPackage InOuter,
const FPackagePath PackagePath,
uint32  LoadFlags,
FLinkerLoad ImportLinker,
FArchive InReaderOverride,
const FLinkerInstancingContext InstancingContext,
const FPackagePath DiffPackagePath 
)

◆ StaticFindAllImportObjects()

void StaticFindAllImportObjects ( TArray< FObjectImport > &  InOutImportMap,
FPackageIndex  InPackageImport,
const FPackagePath PathOfPackageBeingLoaded 
)

Finds and populates the import table for the specified package import.

Parameters
InOutImportMapThe import table
InPackageImportThe package import index

◆ TrackPackageAssetClass()

void TrackPackageAssetClass ( UPackage Package,
FLinkerLoad LinkerLoad,
const TArray< FObjectExport > &  Exports 
)

Helper function to determine and trace the most important asset class.

Variable Documentation

◆ GAllowCookedDataInEditorBuilds

int32 GAllowCookedDataInEditorBuilds = 0

This allows loading cooked content in the editor

◆ GEnforcePackageCompatibleVersionCheck

int32 GEnforcePackageCompatibleVersionCheck = 1

◆ GSkipAsyncLoaderForCookedData

int32 GSkipAsyncLoaderForCookedData = 0