Commit Graph

2647 Commits

Author SHA1 Message Date
jason walter
a91426a755 Set the external package when linker load finds the package in memory.
#jira UE-153112
#rb francis.hurteau
#preflight 631f79bccd55825044fc5321

[CL 21976325 by jason walter in ue5-main branch]
2022-09-12 19:50:41 -04:00
Matt Peters
a8443cd211 TopLevelAssetPath: Fix constructors to allow UObject subclasses to use the UObject* constructor instead of trying and failing to use the CharType* constructor.
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]
2022-09-12 13:08:05 -04:00
paul chipchase
337a705d88 Report CustomVersion warnings/errors to the MessageLog
#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]
2022-09-12 09:56:45 -04:00
phillip kavan
d5e1d97c0d Defer Blueprint CDO export creation on load so that placeholder dependencies can be resolved prior to invoking the native base class ctor.
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]
2022-09-09 13:21:26 -04:00
tim smith
c9e823cc53 Allow methods that can only be invoked from a constructor be available when fetching vtable address for HotReload and Live Coding.
#rb trivial
#jira UE-162734
#preflight 631a0b5ed31788ea3a46d912

[CL 21908217 by tim smith in ue5-main branch]
2022-09-08 20:10:07 -04:00
nate strohmyer
5755e91904 Removing unacceptable words in Runtime/CoreUObject
#Jira UE-163059
#rb Marc.Audy
#preflight 6317c1452b7fe03eb650b501

[CL 21892698 by nate strohmyer in ue5-main branch]
2022-09-08 09:16:58 -04:00
Robert Millar
4dae61dfb7 Remove ensure from FSoftObjectPath::SetPath.
#jira UE-163087, FORT-512708, UE-163155, UE-163097
#rb none
#preflight 631900132b7fe03eb6784c28

[CL 21862060 by Robert Millar in ue5-main branch]
2022-09-07 16:53:44 -04:00
nick darnell
1177e0c661 Core - LazyLoad.PrintUnresolvedObjects, now with 100% fewer warnings about FName sorting.
[CL 21827291 by nick darnell in ue5-main branch]
2022-09-06 15:42:27 -04:00
nick darnell
53643412ca Core - Adding a new console command "LazyLoad.PrintUnresolvedObjects", Prints a list of all unresolved objects from the object handle index. This is a great way to examine all the things that *should be loaded* that were avoided being loaded by the lazy loading system.
[FYI] [at]Zousar.Shaker, [at]Joe.Pribele

[CL 21827273 by nick darnell in ue5-main branch]
2022-09-06 15:41:43 -04:00
joe pribele
3cdbbb2797 [CoreUObject] fix for PrintScriptCallstack not printing callstack to the immediate window
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]
2022-09-06 15:08:01 -04:00
Robert Millar
6a3da51ffd Removing FNames containing asset paths (/Path/To/Package.AssetName) or subobject paths (/Path/To/Package.AssetName:Inner).
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]
2022-09-06 15:02:43 -04:00
andy sonnenburg
6c474af8f6 Public change split off from internal change.
#rb andrew.scheidecker
#rb robert.manuszewski
#rb phil.pizlo


#preflight 63138222e11efde08fc159a9

[CL 21826267 by andy sonnenburg in ue5-main branch]
2022-09-06 15:02:33 -04:00
carlmagnus nordin
e582c065d7 ZenLoader: Initial support for loading packages in the editor
#rb pj.kack
#preflight 6310b0d1ea685939704bded6, 6311a3fa7778595cd69d7f6b
#jira UE-162812

[CL 21790081 by carlmagnus nordin in ue5-main branch]
2022-09-05 04:36:25 -04:00
carlmagnus nordin
98ad51633e ZenLoader: When sync loading a package only execute nodes required for that package to finish loading (resubmit after fix)
#rb pj.kack
#preflight 63131ab3e11efde08fbe1510
#jira UE-162812

[CL 21788177 by carlmagnus nordin in ue5-main branch]
2022-09-05 02:34:01 -04:00
bob tellez
ab72d85eb2 [Backout] - CL21736945. Probable cause of crash in autotest
[FYI] CarlMagnus.Nordin
Original CL Desc
-----------------------------------------------------------------
ZenLoader: When sync loading a package only execute nodes required for that package to finish loading
#rb pj.kack
#preflight 630f9f4498103d4521d4adc3

[CL 21767699 by bob tellez in ue5-main branch]
2022-09-02 17:09:35 -04:00
Tim Smith
38402319bf Fixed minor issue with LiveCoding/HotReload where the first character of the old class name would be removed.
#rb self
#preflight 63120963f51ef182ab741e45

[CL 21758413 by Tim Smith in ue5-main branch]
2022-09-02 10:01:50 -04:00
carlmagnus nordin
6b11785d55 ZenLoader: When sync loading a package only execute nodes required for that package to finish loading
#rb pj.kack
#preflight 630f9f4498103d4521d4adc3

[CL 21737098 by carlmagnus nordin in ue5-main branch]
2022-09-01 03:59:17 -04:00
henrik karlsson
13a3a8291d [Engine runtime]
* Fixed formatting of text inside scoped io activity

#preflight none
#rb trivial

[CL 21716470 by henrik karlsson in ue5-main branch]
2022-08-30 23:04:20 -04:00
paul chipchase
32ff3e56b4 Add a new save flag 'SAVE_RehydratePayloads' which when used will force the package being saved to be rehydrated, so that any virtualized payloads will be downloaded and stored in the resulting package file.
#rb Per.Larsson
#jira UE-161373
#rnx
#preflight 630cc42cf92416fb9262cd70

[CL 21697726 by paul chipchase in ue5-main branch]
2022-08-30 05:36:19 -04:00
mickael gilabert
7c4a3c8d82 GC timeout can be disabled when address sanitizer is enabled (and avoid timeout being triggered due to ASan build being slower than regular build)
[REVIEW] [at]rob.millar
#rnx

[CL 21688476 by mickael gilabert in ue5-main branch]
2022-08-29 16:55:26 -04:00
ben zeigler
506749d6dd Fix ensure when using Asset Manager to search for classes with core redirects where it tries to convert a short name to top level asset path
Change default behavior of FindPreviousPathNamesForClass to only return full paths as suggested by the name, and lower verbosity of asset registry warning that specifically handles the short names
#jira UE-155666, UE-162058, UE-162192
#rb robert.manuszewski
#preflight 630690115a5d4e46246849da

[CL 21595692 by ben zeigler in ue5-main branch]
2022-08-26 14:42:53 -04:00
robert manuszewski
97e2da2b99 The internal list of all enum values will now store enum value names with the package name the enum was defined in to allow identically named enums in different packages.
+ Replaced a few use cases of UEnum::LookupEnumName with FindObject where LookupEnumName was used to find a known UEnum object

#preflight 63075f9b03520e063c2926c9
#rb Steve.Robb

[CL 21590471 by robert manuszewski in ue5-main branch]
2022-08-26 11:07:32 -04:00
joe pribele
0b82102f66 [Core] changes to make lazyloadimports performant
changed lazy load back to looking at meta data to decide which types are lazyloaded
removed callback that handles lazyload can add back in the future if needed
only imports that marked as lazy are skipped. verifyimports still resolves other imports
skipping all imports causes performance problems because PackageLoadInternal is called many more times then necessary

#rb zousar.shaker
#p4v-preflight-copy 21567032
#preflight 6307d7753042e94f9f642a6d

[CL 21571620 by joe pribele in ue5-main branch]
2022-08-25 16:26:05 -04:00
joe pribele
62523d6eeb [Core] added FObjectPtrProperty::GetObjectPropertyValueAsPtr to get the FObjectPtr
changed `FPropertyLocalizationDataGatherer::GatherLocalizationDataFromChildTextProperties` to use `GetObjectPropertyValueAsPtr` to avoid loading object unnecessarily

#rb zousar.shaker
#preflight 6307b7f2ec31bd561c22b369

[CL 21569269 by joe pribele in ue5-main branch]
2022-08-25 14:20:58 -04:00
Robert Millar
829080c599 Refactor instancing context to make a clear split between package name and object path mappings
#preflight 6307a2e3be305e57a2fa20cd

[CL 21567851 by Robert Millar in ue5-main branch]
2022-08-25 13:22:52 -04:00