* Added some core string conversion paths
* Added FString::Append() and += overloads to avoid pointless temporaries when appending c strings and various other string types
* Added UTF32 <-> TCHAR string conversion macros
* Optimized QuotedString parsing
* Optimized property parsing
* PackageName optimizations
* SoftObjectPath optimizations
#jira none
#rb see original changelists
#ushell-cherrypick of 11932317 by Johan.Torp
#ushell-cherrypick of 11932319 by Johan.Torp
#ushell-cherrypick of 11932321 by Johan.Torp
#ushell-cherrypick of 11932322 by Johan.Torp
#ushell-cherrypick of 11932324 by Johan.Torp
#ushell-cherrypick of 11932462 by Johan.Torp
#ushell-cherrypick of 11934123 by Johan.Torp
#ushell-cherrypick of 12000177 by Johan.Torp
#ushell-cherrypick of 12000183 by Johan.Torp
#ushell-cherrypick of 12114232 by Johan.Torp
[CL 12147981 by Johan Torp in 4.25 branch]
Alternate fix that does not copy the number
#rb devin.doucette
#ROBOMERGE-SOURCE: CL 11214724 via CL 11214728
#ROBOMERGE-BOT: (v644-11213502)
[CL 11214730 by johan torp in Main branch]
Requested in review https://p4-swarm.epicgames.net/reviews/11200485 for CL 11201262.
#rb Johan.Torp, Matt.Peters
#rnx
#ROBOMERGE-SOURCE: CL 11214474 via CL 11214481
#ROBOMERGE-BOT: (v644-11213502)
[CL 11214484 by devin doucette in Main branch]
Copy the number to a temporary buffer until we have an overload of Atoi64 that takes the input length. The generic implementation of Atoi64 for TCHAR converts the input to ASCII then converts that to an integer. For unterminated strings, this could cause an access violation or convert an obscenely large input to ASCII.
#rb Johan.Torp, Matt.Peters
#ROBOMERGE-SOURCE: CL 11201262 via CL 11201265
#ROBOMERGE-BOT: (v640-11091645)
[CL 11201273 by devin doucette in Main branch]
#jira UE-1949, UE-1950
#rb benn.gallagher, matt.kuhlenschmidt
#ROBOMERGE-SOURCE: CL 11125982 via CL 11126447
#ROBOMERGE-BOT: (v640-11091645)
[CL 11126552 by christina tempelaarl in Main branch]
#jira UE-1949, UE1950
#rb matt.kuhlenschmidt, benn.gallagher
#ROBOMERGE-SOURCE: CL 11112514 via CL 11112515
#ROBOMERGE-BOT: (v640-11091645)
[CL 11112518 by christina tempelaarl in Main branch]
Very early batch loading reserve didn't acquire lock and in the EngineTest case other threads were creating FNames in parallel
#jira UE-87097
#rb trivial
[CL 11071675 by Johan Torp in Dev-Core branch]
- Ptrdiff -> int32
- Float/int confusion and double/float
- size_t stuff; various changes to the algorithms to use a deduced IndexType template argument and/or decltype to use the appropriate size for indicies and counts
- Fixed GetNum(FString) incorrectly returning SIZE_T instead of int32, and GetNum(container) now returns whatever container.Num() does (so usually int32)
#jira UE-86949
#rb marc.audy, steve.robb
#ROBOMERGE-OWNER: michael.noland
#ROBOMERGE-AUTHOR: michael.noland
#ROBOMERGE-SOURCE: CL 11050799 via CL 11050828 via CL 11050837
#ROBOMERGE-BOT: (v637-11041722)
[CL 11051763 by michael noland in Main branch]
#jira FORT-242755
#rb steve.robb
#ROBOMERGE-SOURCE: CL 10950274 in //Fortnite/Main/...
#ROBOMERGE-BOT: FORTNITE (Main -> Dev-EngineMerge) (v632-10940481)
#ushell-cherrypick of 10950275 by johan.torp
[CL 10950290 by Johan Torp in Main branch]
#rb none
[FYI] Michael.Lentine
#ROBOMERGE-OWNER: bob.tellez
#ROBOMERGE-AUTHOR: ori.cohen
#ROBOMERGE-SOURCE: CL 10882491 via CL 10885108 via CL 10885109 via CL 10885110
#ROBOMERGE-BOT: (v626-10872990)
[CL 10885111 by bob tellez in Main branch]
#rnx
#rb none
#ROBOMERGE-OWNER: ryan.durand
#ROBOMERGE-AUTHOR: ryan.durand
#ROBOMERGE-SOURCE: CL 10869210 via CL 10869511 via CL 10869900
#ROBOMERGE-BOT: (v613-10869866)
[CL 10870549 by ryan durand in Main branch]
#rb none
#ROBOMERGE-SOURCE: CL 10786987 via CL 10787000 via CL 10787014
#ROBOMERGE-BOT: (v610-10636431)
[CL 10787041 by michael lentine in Main branch]
[REVIEW] ben.woodhouse, david.harvey
#ROBOMERGE-SOURCE: CL 10497628 via CL 10497636 via CL 10497638 via CL 10497681
#ROBOMERGE-BOT: (v606-10482310)
[CL 10497689 by dan phillips in Main branch]
* Fixed number parsing
* Narrow literals were eagerly resolved via implicit FName construction, added support for narrow literals
* Merged 32-bit and 64-bit implementations
* Added additional unit tests
* Moved some code to .cpp
#jira UE-81205
#rb steve.robb
[CL 9630060 by Johan Torp in Main branch]
These semantics match the old UE 4.22 FName implementation.
#jira UE-81464
#rb pj.kack
#lockdown nick.penwarden
[FYI] stefan.boberg
#ROBOMERGE-SOURCE: CL 9470664 in //UE4/Release-4.23/...
#ROBOMERGE-BOT: RELEASE (Release-4.23 -> Main) (v501-9460993)
[CL 9470669 by johan torp in Main branch]
This steals back some of the LLM tagged memory from other categories that should have been marked as FName.
In MB:
AssetRegistry: 61.98 -> 43.60
AsyncLoading: 25.27 -> 19.54
EngineInit: 20.12 -> 19.12
EnginePreInit: 38.33 -> 13.33
GC: 10.21 -> 7.57
Stats: 51.10 -> 50.78
UObject: 270.85 -> 268.20
Untagged: 32.30 -> 30.67
FName: 0 -> 54.25
#rb johan.torp
[FYI] andrew.ladenberger
#rnx
#ROBOMERGE-SOURCE: CL 9390082 via CL 9390083 via CL 9390086 via CL 9390089
#ROBOMERGE-BOT: (v456-9359915)
[CL 9392212 by jordan cristiano in Main branch]