Added some tests for this, which also covers the case which was fixed in CL# 31993660.
#rb devin.doucette
[CL 32016140 by steve robb in ue5-main branch]
- Replace platform atomics by std::atomic that allow more fine grained memory ordering
- Fix AtomicRead that was doing a CAS on windows platforms instead of a less costly read
- Remove TSAN_SAFE so we can actually test the code for thread safety
#rnx
#jira UE-135685
#rb Daniele.Vettorel
[CL 31717343 by danny couture in ue5-main branch]
[FYI] dmytro.vovk
Original CL Desc
-----------------------------------------------------------------
Fixed default initialization of TLS slots to 0 and invalidity check against 0 as 0 is a valid TLS slot index
#rb Francis.Hurteau, Matt.Peters
[CL 31088717 by sean boocock in ue5-main branch]
Without this implementation, it's not possible to use GetId() on TMap::TKeyIterators/TConstKeyIterators
This missing implementation is specifically helpful for cases where you'd like to find the KV Pair ElementType for a given KeyArgumentType in cases where you may have collisions between keys and the actual KeyArgumentType value is important.
Example case is when dealing with FNames in Editor since they compare on case-insensitive CompareIds but have unique DisplayIds for different casing. If you want to know the casing used when inserted into a map, you can now do the following:
TMap<FName, FAssetPackageData*>::TConstKeyIterator It = CachedPackageData.CreateConstKeyIterator(PackageFNameOfAnyCase);
FSetElementId Id = It.GetId();
if (!Id.IsValidId())
{
return nullptr;
}
const TPair<FName, FAssetPackageData*> KVPair = CachedPackageData.Get(Id);
FName PackageNameWithCasingUsedUponInsertion = KVPair.Key;
return KVPair.Value;
#rb Francis.Hurteau, Steve.Robb
[CL 30969014 by kevin macaulayvacher in ue5-main branch]
- Mostly a straight port from mtlpp to MetalCPP
- The debug encoders have been removed in favour of Metal's built in encoder errors, these are always on in debug and development builds
- mtlpp had additional validation that we are now not implementing in the short term, but will revisit after some refactoring
#rb Zack.Neyland
[CL 29773146 by carl lloyd in ue5-main branch]
Added deprecation option for the string constructors, which are enabled for FUtf8String and FAnsiString and will be used to incrementally replace usage for FString.
#rb james.hopkin
[CL 29682001 by steve robb in ue5-main branch]
Replaced the if constexpr usage in FString's operator<< with the new macro.
Fixed some incorrect usage of CHARTEXT when logging.
#rb devin.doucette
#jira UE-194628
[CL 28391466 by steve robb in ue5-main branch]