Change summary:
- Replaced inclusive lambda capture lists and non-compliant occurrences of auto.
- Consolidated EDL boot time paths and replaced TODO comments with updated notes.
- Consolidated work that required a full iteration through the dependencies list into a single pass.
#rnx
#rb Me
#jira None
[CL 4548059 by Phillip Kavan in Dev-Framework branch]
Change summary:
- Added a shared cache to FGatherConvertedClassDependencies. The ctor is now protected and access is done through the static Get() method. This prevents redundant dependency list gathering for a previously-queried class/struct type.
- Switched FGatherConvertedClassDependencies::Assets from a TArray to a TSet (for consistency w/ the other dependency lists).
- Added FGatherConvertedClassDependenciesHelperBase::AddAssetDependency() to consolidate the addition of non-converted type asset dependencies (for consistency and easier maintenance).
- Added FGatherConvertedClassDependencies::GatherAssetsReferencedByConvertedTypes() as a utility method for building a nested asset dependency chain when converted subobject types are involved.
- Modified FFakeImportTableHelper::GetClassesOfSubobjects() to flag nested asset dependencies as CDO preload dependencies for EDL on the outermost converted type. This ensures dependencies will be loaded prior to CDO construction before instancing subobjects of a converted class type.
- Modified FGatherConvertedClassDependencies::AllDependencies() to include nested asset dependencies; this ensures they're included when we're generating the code needed to support the linker's "fake" export table at runtime.
- Some misc. cleanup; replaced a few instances of 'auto' with explicit types and updated a few lambda capture lists in place of previous use of '&' as a catch-all.
#jira UE-62514
#rb Dan.OConnor
[CL 4541116 by Phillip Kavan in Dev-Framework branch]
Change summary:
- Modified FEmitDefaultValueHelper::GenerateUserStructConstructor() to ensure that POD fields are always initialized in the converted UDS ctor.
#jira UE-62764
#rb Ben.Zeigler
[CL 4522000 by Phillip Kavan in Dev-Framework branch]
Change summary:
- Modified FEmitHelper::LiteralTerm() to generalize TSoftClassPtr/TSoftObjectPtr terms - the default value case did not previously consider TSoftClassPtr pin types.
#jira UE-62157
#rb Ben.Zeigler
[CL 4521990 by Phillip Kavan in Dev-Framework branch]
Notes:
- This will re-introduce UE-62514. I will be reopening that issue to be addressed for the next release instead.
#rnx
#rb None
#jira UE-64888
#ROBOMERGE-SOURCE: CL 4491493 in //UE4/Release-4.21/...
#ROBOMERGE-BOT: RELEASE (Release-4.21 -> Release-Staging-4.21)
[CL 4491495 by phillip kavan in Staging-4.21 branch]
Change summary:
- Added a 'CoerceProperty' argument to FBlueprintCompilerCppBackEnd::TermToText() and FEmitHelper::LiteralTerm(). This is passed through as the LHS term's associated property when compiling 'KCST_Assignment' statements.
- Modified FEmitHelper::LiteralTerm() to emit an initialization list to C++. This occurs when the RHS of a variable assignment statement is a literal container term, which includes the initialization of K2Node_FunctionResult pins to a default (empty) value.
- Added FBlueprintCompilerCppBackEnd::TermToText() and FEmitHelper::LiteralTerm() methods that accept a struct value for specifying arguments rather than increasing the number of parameters with default values. Modified the implementations to match.
#jira UE-48397
#rb Dan.OConnor
[CL 4338211 by Phillip Kavan in Dev-Framework branch]
Change summary:
- Modified FEmitDefaultValueHelper::HandleSpecialTypes() to emit runtime code to look for an existing instance of a default subobject only if the 'RF_DefaultSubObject' flag is set on the source instance. This works around instances that return 'true' for IsDefaultSubobject() but were not created with CreateDefaultSubobject() (e.g. - instanced in the editor UI).
#rb None
#jira UE-62883
[CL 4301603 by Phillip Kavan in Dev-Framework branch]