- Removes VUTF8String and replaces its usage with VArray's of Char8's.
- Reworks VUniqueString to derive from VArray
- Re-enables majority of string related verse-tests for VM
Minor:
- Updated some ToStringImpl for VFalse and VFunction
#okforversepublic
#rb saam.barati, Tim.Smith
#rb tim.smith
[CL 32803034 by jared cotton in ue5-main branch]
One was caused by the import validation not accounting for the package remapping when validating the class of the import in the linkerload.
The other was caused by some code in the open world tech that asked the asset registry to scan for a file that doesn't exist. This one is resolved by putting the flag to tell the engine that the instanced package from migration don't have on disk file.
#jira UE-209054
#rb JeanLuc.Corenthin, Francis.Hurteau
[CL 32792908 by julien stjean in ue5-main branch]
#rb Per.Larsson
#rnx
- If archive is corrupt we could serialize an unreasonable value for the payload size from disk. This could cause very large allocations to be made which could cause the process to OOM or to allocate resources that it doesn't need.
- To avoid this we can check the archive we are serializing from and make sure that, at the very least, it will be possible to load all of the payload bytes from it. This way we will never make an allocation larger than the remaining space in the archive. It would then be up to the higher level code to validate that overall size of the provided file makes sense.
- Note that we are not able to do this is we are loading a payload from legacy bulkdata format that was marked as compressed as we only know the uncompressed payload size, not the compressed size on disk.
[CL 32755840 by paul chipchase in ue5-main branch]
This ensures that the 'keys' culture shows the text as localizable, even if there's no translation data available for it yet
#rb Leon.Huang
#rnx
[CL 32742101 by jamie dale in ue5-main branch]
Fixed the names of the UE class properties to match BPVM.
Fixed missing dll exports on the verse value property
#rnx
#rb russell.johnston, yiliang.siew
[CL 32724202 by tim smith in ue5-main branch]
- Rename the CoreVerseVM to CorePreciseFP to better reflect its purpose.
#rb fabian.giesen, Steve.Robb, Tim.Smith
[CL 32696889 by andrew scheidecker in ue5-main branch]
Visit this property and allows recursion into the inner properties
This allows you to visit inner properties without knowing about its container type as opposed to TPropertyIterator.
This visit property pattern facilitate the recursion into users defined properties and allows users to add specific visit logic on UStruct via traits.
#rb Devin.Doucette, logan.buchy, Yoan.StAmant
[CL 32696068 by maxime mercier in ue5-main branch]
Defer blocks run for one of several reasons: normal block exit, exit via break or return, or (not yet implemented) task cancellation. To accommodate this, defer bytecode accepts a jump target index and switches on it after running. This index is stored in a register allocated for the defer block, which is sufficient because defers are not re-entrant. The register and switch are elided when the block runs only on the normal exit path.
The switch instruction has a variadic label operand. To simplify label fixup, all variadic operands are moved from `TArray` fields in the instructions to a shared trailing array in `VProcedure`. (Variadic operands to suspension captures remain `TArray`s.)
Early exit may cross several defer blocks on the way to its eventual jump target. Each defer block wraps these jump targets in a thunk, which passes the index for the wrapped target to the defer block. Exit control flow thus executes a chain of these thunks, ending with the actual exit jump when it reaches the appropriate scope.
#rb Markus.Breyer, Tim.Smith
[CL 32670628 by russell johnston in ue5-main branch]