#rb Steve.Robb
#preflight 621515f40f71e491ccc7d14b
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 19075982 via CL 19098326 via CL 19104715 via CL 19104912 via CL 19110027
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)
[CL 19147883 by robert manuszewski in ue5-main branch]
Setters and getters are native functions called by FProperties when setting property values with *_InContainer functions.
Setters and getter function names can be manually specified with Setter = Func and Getter = Func keywords inside of UPROEPRTY macro but they will also be automatically parsed if the name is not explicitly specified if the setter or getter function name matches SetPropertyName and GetPropertyName pattern.
The latter behavior can be disabled in UHT's DefaultEngine.ini by setting AutomaticSettersAndGetters=False.
ImportText and ExportTextItem functions have been deprecated and should be replaced with *_InContainer or *_Direct variants.
#rb Steve.Robb
#preflight 6210a377a83e0bcefd03d9e1
#ROBOMERGE-OWNER: marc.audy
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 19070318 via CL 19098059 via CL 19104650 via CL 19104661 via CL 19110012
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)
[CL 19147839 by marc audy in ue5-main branch]
- Original fix was to prevent discovery of incomplete PIE packages from the package map client, which resulted in potential failures to resolve external actors outer chain from the incomplete package.
- Solution is to revert the original fix and make the package map aware of incomplete PIE packages to delay resolving of external actors until the package is considered complete. This cannot rely on UPackage::IsFullyLoaded since technically, the package is fully loaded and needs to be for external actors to properly resolve their outer.
#jira UE-141116
#rb patrick.enfedaque
#preflight 6214de68a97c2c3348ca296f
#ROBOMERGE-AUTHOR: jeanfrancois.dube
#ROBOMERGE-SOURCE: CL 19082637 in //UE5/Release-5.0/... via CL 19097157
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)
[CL 19140938 by jeanfrancois dube in ue5-main branch]
FArchive now holds a "CookData" blob that contains relevant information for cooking. The TargetPlatform has been moved to this structure, and it has a reference to a CookContext that can hold data generated during the cook that doesn't get serialized to the uasset (in this case, the asset registry tags).
#rb Matt.Peters
#preflight 62151bc4797dbbeb472af77d
#preflight 621011f6ff52bfecfc032b15
#preflight 62152777141b500e17eb24ef
[CL 19076066 by Dan Thompson in ue5-main branch]
Adds a define UE_FNAME_OUTLINE_NUMBER.
Removes of FName, FMinimalName from memory image support. Adds of FMemoryImageName.
Removal of FMinimalName operator<<, all fields made private, size made variable.
All fields of FScriptName made private.
Added console commands for dumping numbered/unnumbered names and stats.
#rb johan.torp
#ROBOMERGE-OWNER: robert.millar
#ROBOMERGE-AUTHOR: robert.millar
#ROBOMERGE-SOURCE: CL 19058026 via CL 19058611 via CL 19058656 via CL 19061727 via CL 19061740 via CL 19064047
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v918-19018356)
[CL 19066701 by robert millar in ue5-main branch]
#rb Andrew.Scheidecker
#preflight 620f3a108863746a104d6c36
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 19047989 via CL 19048186 via CL 19048197 via CL 19048203 via CL 19049414
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v918-19018356)
[CL 19065767 by robert manuszewski in ue5-main branch]
BulkDataRegistry: Wait until the top-level EndLoadPackage, and wait until after OnEnginePostInit, before deleting bulkdatasize records. Deleting them sooner can make them be deleted before they're used by the EditorDomain if the EditorDomain's TrySavePackage triggers package loading and a recursive OnEndLoadPackage.
#rb Zousar.Shaker
#rnx
#preflight 620f00e7e8554a6f64f74d5a
[CL 19046732 by Matt Peters in ue5-main branch]
Rename the LoadChannel version of the Serialize scope to LoadSerialize.
Lump PreSaveRoot and PostSave into PreSave since they don't deserve a separate scope.
Change existing classname-parameterized scopes to use WriteToString instead of FStrings to remove an allocation.
#rb Zousar.Shaker
#rnx
#preflight 620bd511475fb819ddc60169
[CL 18998774 by Matt Peters in ue5-main branch]
- Text format now includes import and export tables instead of discovering import while serializating exports. This is required to have enough information about objects with an override package that have their Outer in another package.
- UObject Json formatters now export import/export indices instead of relying on the objects full paths, which index into the exported import/export tables.
- Merged code to serialize UObject* and FObjectPtr in Json formatters to avoid code duplication.
#rb francis.hurteau, steve.robb
#preflight 61fd34030a43b689e1750d28
#rnx
#ROBOMERGE-AUTHOR: jeanfrancois.dube
#ROBOMERGE-SOURCE: CL 18978952 via CL 18980785 via CL 18981531 via CL 18981661 via CL 18992713 via CL 18993052
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v917-18934589)
[CL 18997360 by jeanfrancois dube in ue5-main branch]
#rb Mark.Lintott
#jira UE-142281
#rnx
#lockdown Mark.Lintott
#preflight 62067f0db84973a2bb8baf05
- The TUniquePtr would allocate the buffer with new[] and we were using FMemory::Free to delete it.
- This works under our default set up thanks to REPLACEMENT_OPERATOR_NEW_AND_DELETE but it is unsafe to leave it.
- Changed the call to FSharedBuffer::TakeOwnership so that the payload will be destroyed via delete []
#ROBOMERGE-AUTHOR: paul.chipchase
#ROBOMERGE-SOURCE: CL 18952581 in //UE5/Release-5.0/... via CL 18952687 via CL 18952831
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v917-18934589)
[CL 18952839 by paul chipchase in ue5-main branch]
SavePackage: Improve feedback and avoid crashing when the temporary file fails to write.
#preflight 620549dbb84973a2bb5fbc0b
#rb Francis.Hurteau
#rnx
[CL 18938943 by Matt Peters in ue5-main branch]
#rb Francis.Hurteau
#jira UE-141755
#lockdown Mark.Lintott
#rnx
#preflight 62050a81e54ab7c24bb47853
- In the last year we have encountered an increasing number of problems where an asset is processing it's bulkdata on an async thread when it is garbage collected.
- This is caused because we detach the package's linker in UPackage::BeginDestroy but most async asset tasks are checked in UObject::IsReadyForFinishDestroy, meaning we can have async work trying to access the bulkdata in the package file up until UPackage::FinishDestroy is called
-- Usually we try and fix this problem by preventing packages with outstanding async tasks from being garbage collected, but support for this is not universal and can lead to the above problems showing up in various commandlets.
- By moving the detachment of the packages linker to UPackage::FinishDestroy we should be able to prevent these problems in all cases.
#ROBOMERGE-AUTHOR: paul.chipchase
#ROBOMERGE-SOURCE: CL 18936647 in //UE5/Release-5.0/... via CL 18937598 via CL 18937892
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v917-18934589)
[CL 18937908 by paul chipchase in ue5-main branch]