These now serialize a NetGUID tracked by the PackageMap, as other replicated references to objects do. Effectively acts as a weak pointer in the replication case now as well. Soft pointers to stably-named objects continue to replicate their string path.
Added EngineTest cases for replicated soft pointers.
#jira UE-144886
#rb brian.bekich
#preflight 632a22f6b40000c8f08c6e4d
[CL 22105246 by ryan gerleve in ue5-main branch]
Core - Refactoring the Object Handle event callbacks so that we can hook and unhook them with delegates/delegatehandles.
Core - Adding support for detecting loads via object handles as a new event distinct from resolution callback.
Core - Expanding the utility functions on FObjectRef so that we can resolve it in a myraid of fashions to get the path, the class path, the full path and the export path.
[REVIEW] [at]Zousar.Shaker, [at]Joe.Pribele
[CL 22063982 by nick darnell in ue5-main branch]
Class - When iterating the classes sparse values, don't accidentally load deferred objects, or crash because you're reinterpret casting the value of something that isn't a pointer.
[REVIEW] [at]Zousar.Shaker, [at]Joe.Pribele
[CL 22063963 by nick darnell in ue5-main branch]
* Fixed issue with LOAD_PackageForPIE getting lost when calling LoadPackageAsync from LoadPackageInternal
* Fixed issue with externally created packages not being tracked in the import store and unintentionally being loaded multiple times
* Fixed issue with instancing contexts not being propagated to imported packages
#preflight 63232218e872d7da0397f29e
#rb pj.kack
#jira UE-162812
[CL 22050271 by carlmagnus nordin in ue5-main branch]
* Added UE_SCOPED_ENGINE_ACTIVITY in a couple places that takes noticable amount of time when starting monolith editor
#preflight skip
#rb self
[CL 22030271 by henrik karlsson in ue5-main branch]
PreLoad needs to be forced otherwise the object could get used before it has been loaded
#rb zousar.shaker
#preflight 6320a2b4a514fd1e37cff95b
[CL 21997861 by joe pribele in ue5-main branch]
Allow UObject constructor to record a valid path to non-asset toplevelobjects, for consistency with the other constructors which are based on path strings rather than the virtual IsAsset function (which e.g. returns false for UClass).
#rb Robert.Millar
#rnx
#preflight 631f5eafd613b765fa391870
[CL 21967835 by Matt Peters in ue5-main branch]
#rb PJ.Kack
#rnx
#preflight 631ef703544fb584da4e1a81
- This will allow the messages to show up when the user clicks the link on the "Failed to load assets" notification in the editor. If the warnings/errors are only printed via UE_LOG, then no messages will be displayed when the user clicks that link which can be confusing.
[CL 21964749 by paul chipchase in ue5-main branch]
Notes:
- This change is needed to supplement the feature that allows users to set a subobject override class from the Blueprint editor; i.e. overriding a component class with a non-native Blueprint component class will otherwise fail on reload.
Change summary:
- Modified FLinkerLoad::CreateExport() to move the deferred CDO serialization check to occur prior to CDO construction (part of the linker's circular dependency mitigation code path). This means we now defer its construction in addition to its serialization.
- FLinkerLoad::CreateExport() will continue to bypass class regeneration post-construction when Blueprint finalization is still pending. This is because CDO construction, while now deferred until finalization, still goes through CreateExport() for consistency.
- Modified FLinkerLoad::ResolveDeferredExports() to handle the deferred construction of the CDO during Blueprint finalization, prior to its deferred serialization.
- Modified UClass::Serialize() to bypass the NULL check for failed CDO serialization when deferred dependency loading is active and Blueprint finalization is still pending.
#jira UE-147639
#rb Marc.Audy, Dan.OConnor, Robert.Manuszewski
#preflight 63113f9e942c45ff454f8ef1
[CL 21923865 by phillip kavan in ue5-main branch]
logging buffers any call not from the logging thread, added a call to Flush() to force the logger write.
added to improve efficiency in building a stacktrace
FFrame::GetStackDescription(FStringBuilderBase& StringBuilder)
FFrame::GetStackTrace(FStringBuilderBase& StringBuilder)
FFrame::GetScriptCallstack(FStringBuilderBase& StringBuilder, bool bReturnEmpty = false, bool bTopOfStackOnly = false)
UObjectBaseUtility::GetFullName(FStringBuilderBase& ResultString, const UObject* StopOuter = NULL, EObjectFullNameFlags Flags = EObjectFullNameFlags::None) const
#jira UE-161358
#rb zousar.shaker devin.doucette
#preflight 63178f86304480f8f8e1c961
[CL 21826435 by joe pribele in ue5-main branch]
These FNames can take 30mb+ of memory in a large project.
Refactor FSoftObjectPath to store a FTopLevelAssetPath instead of an FName for the top level asset part.
Refactor FAssetData to infer the object path from the PackageName and AssetName fields and an editor-only field called OptionalOuterPath for external actors which are non-top-level assets.
Refactor FAssetBundleData to only store top level asset references.
Increase EUnrealEngineObjectUE5Version for FSoftObjectPath invalidation.
Increase FAssetRegistryVersion to invalidate serialization of FAssetData and FAssetBundleData - asset registry serialization does not see EUnrealEngineObjectUE5Version.
Replace TMap in Asset Registry with TSet to avoid duplicating the key fields.
Remove object path FName fields from native blueprint make/break functions for FARFilter - those pins will be orphaned.
Refactor redirect collector to use soft object paths rather than FNames.
UE_DEPRECATED markers have been commented out in this change to allow separate submission of deprecation fixups across the engine.
#jira UE-161932
#rb matt.peters,francis.hurteau,ben.zeigler
#lockdown marc.audy
#preflight
[CL 21826272 by Robert Millar in ue5-main branch]