- GetMaxIndex returns max usable index for underlying sparse storage.
- IsValidId returns whether anything is stored at given index.
- Get returns stored element reference. (Requires IsValidId to return true). (Not using operator[] to prevent confusion with access by map key).
- Iterators have GetId function to return current index for later use with Get.
- Added Get functions to Set to match new interface on Map.
#rb steve.robb,justin.marcus
[CL 24773623 by robert millar in ue5-main branch]
Added checks for invalid element counts in various allocators' ResizeAllocation() functions.
[REVIEW] [at]johan.torp
#preflight 63f4e4f1500c05a624a9fe5e
#localization none
#tests preflight, local runs to ensure everything is still fine, runs with deliberately engineered huge reallocations to show that bad resizes are caught.
[CL 24404851 by steve robb in ue5-main branch]
Results from a 2.3hr cook session:
EvaluateGarbageCollectionResults: Skip SoftGC diagnostics if not running a memory diagnostic cook.
112s -> 0.05s
GetNeverCookPackageFileNames: Use FDirectoryTree instead of linear search.
20s -> 1.2s
AssignLayerChunkDelegate: Cache the ChunkLayerAssignment map from ini because the function can be called multiple times.
11.5s -> 0.01s
InitializeFromExistingAndPrune: Use FName WriteToString instead of ToString.
6.8s -> 6.8s (no change)
TJsonStringWriter::Close: Reserve the OutString to make only a single allocation
2.8s -> 2.2s
MakePathRelativeTo: Use TInlineAllocators and FStringView in the ParseIntoArray arrays, use TArrayView.RightChop instead of RemoveAt, presize the output string.
2.7s -> 1.5s
#rb Zousar.Shaker
#rnx
#preflight 63d81355ec3d1af440a6ab81
[CL 23915442 by Matt Peters in ue5-main branch]
TCString: Add Strnstr and Strnistr.
#preflight 638611e8170bc34a93afe39a
#rb Devin.Doucette, Steve.Robb
#rnx
[CL 23306326 by Matt Peters in ue5-main branch]
Memory improvements on top of performance improvements in 11535961.
Allow the hash allocation to shrink for calls to Empty(), Shrink(), Compact() and CompactStable().
Let TSparseArray::Compact() shrink the data array just as for Shrink() and CompactStable().
Note: The private function TSet::ShouldRehash() is only called from Empty() and ConditionalRehash(), and ConditionalRehash() with bAllowShrinking=true is only called from Relax() via Shrink(), so there should be no impact on other/growth scenarios.
Modify GetAllocatedSize() for TSet, TMap and TSparseArray to only return any dynamically allocated size from the underlying allocators and change return type from uint32 to SIZE_T (just as for TArray and FContainerAllocatorInterface).
#rb johan.torp,steve.robb
#preflight 634952f4ce524ed356dafde7, 63496f80f622f6c4bb1c0321, 634d65df9c29024c982ecf26
[CL 22595144 by pj kack in ue5-main branch]
New asset tag added for vpaths, displayed in the content browser.
#rb dave.belanger
#preflight 63330acea4769ad714f8ea2d
[CL 22228539 by Dave Belanger in ue5-main branch]
Updated Core code to not use CoreMinimal.h when possible.
Core public headers still will contain CoreMinimal.h if any included it before my IWYU changes.
#preflight 62c74ed0324817d81488b7ee
[CL 20993420 by bryan sefcik in ue5-main branch]
Things to note regarding this pass:
* No includes are currently being removed from public headers.
* Any private file that has a #if is currently not being updated.
#rb Devin Doucette and Marc Audy
#preflight 62c62086756222ced497ff95
#preflight 62c626d12f2d04691814d331
#preflight 62c630107e606620fdd64e31
#preflight 62c635c6756222ced49a13cf
[CL 20979027 by bryan sefcik in ue5-main branch]