* Remove FNameLookupCPP struct and interface name maps. Overhead of managing/locking maps provides no benefit to the very simple Printf that it is ultimately doing.
* Remove unused FNameLookupCPP source file
* Remove GClassStrippedHeaderTextMap and GClassHeaderNameWithNoPathMap as they are unused
* No longer add Enum hashes to global table as they are not read.
* CheckedMetadataSpecifiers now stored as a FName keyed TMap as the incoming values are names not strings, so no need to convert name to string
#jira
#rnx
#rb
#ROBOMERGE-OWNER: marc.audy
#ROBOMERGE-AUTHOR: marc.audy
#ROBOMERGE-SOURCE: CL 10879228 via CL 10879328 via CL 10879344
#ROBOMERGE-BOT: (v626-10872990)
[CL 10880488 by marc audy in Main branch]
* Restructured code so that FNativeClassHeaderGenerator can now use ParallelFor for 3 phases: creating the .generated.h files, creating the .gen.cpp, and exporting the generated headers
* FNameLookupCPP, GPackageSingletons, GGeneratedCodeHashes, GetTypePackageName, FNativeClassHeaderGenerator::GetPackageSingletonName, FTypeSingletonCache, and FTypeSingleton::GetExternDecl now use RWScopeLocks to safely control access to globals/statics
#jira
#rnx
#rb
#ROBOMERGE-OWNER: marc.audy
#ROBOMERGE-AUTHOR: marc.audy
#ROBOMERGE-SOURCE: CL 10876463 via CL 10876464 via CL 10876465
#ROBOMERGE-BOT: (v624-10872983)
[CL 10876473 by marc audy in Main branch]
* FToken now lazily initializes FName version when needed
* FToken now avoids string compares when matching single character symbols and requires that case sensitivity be specified for matching identifiers
* FClass now maintains a type package name map rather than reconstructing package name repeatedly
* HeaderParser now avoids name lookups, avoids case insensitive string compares, and uses move semantics whenever possible
#rb
#jira
#rnx
#ROBOMERGE-OWNER: marc.audy
#ROBOMERGE-AUTHOR: marc.audy
#ROBOMERGE-SOURCE: CL 10872843 via CL 10872844 via CL 10872845
#ROBOMERGE-BOT: (v623-10872670)
[CL 10872857 by marc audy in Main branch]
* Added a sorted specifier list to reduce string compares when evaluating metadata tags
* Use move semantices where possible
* Use RemoveSwap instead of Remove when processing show/hide metadata tags. Generated code can change as a result of hide/show tag order changing.
#jira
#rnx
#ROBOMERGE-SOURCE: CL 10872240 via CL 10872241 via CL 10872242
#ROBOMERGE-BOT: (v620-10870533)
[CL 10872243 by marc audy in Main branch]
#rb [at]Dan.Hertzka
#ROBOMERGE-SOURCE: CL 10342399 via CL 10355411 via CL 10355591
#ROBOMERGE-BOT: (v594-10333955)
[CL 10360660 by matt loesby in Main branch]
UHT now checks for the following:
- max of one sparse class data struct per class
- sparse class data struct must inherit from the parent classes sparse class data struct
- all sparse properties must be BlueprintReadOnly and EditDefaultsOnly
- BP assignable delegates are not allowed as sparse properties
#jira UE-81001
#rb Michael.Noland
#ROBOMERGE-SOURCE: CL 9957835 in //UE4/Release-4.24/...
#ROBOMERGE-BOT: RELEASE (Release-4.24 -> Main) (v558-9892490)
[CL 9957838 by fred kimberley in Main branch]
Replicated from CL# 7924370.
#rb none
#ROBOMERGE-OWNER: steve.robb
#ROBOMERGE-AUTHOR: steve.robb
#ROBOMERGE-SOURCE: CL 9279060 via CL 9279063
#ROBOMERGE-BOT: (v443-9013191)
[CL 9279836 by steve robb in Main branch]