Commit Graph

6068 Commits

Author SHA1 Message Date
robert millar
4033356439 Move TDirectoryTree from CoreUObject to Core.
#rb matt.peters

[CL 32815710 by robert millar in ue5-main branch]
2024-04-08 21:37:55 -04:00
matt peters
1a875d0e48 AssetRegistry: Centralize all of the hard-coded classpath strings used by the AssetRegistry. Use hard-coded strings wherever we were previously using StaticClass()->GetClassPathName() in case our functions are called from early asyncthread scanning code before the modules are initialized.
#rnx
#rb robert.millar

[CL 32809273 by matt peters in ue5-main branch]
2024-04-08 18:13:56 -04:00
brandon schaefer
16da18b71b Remove annotation if we abort, and open on it since it has a lock
#rb neil.henning


#ushell-cherrypick of 32770472 by Brandon.Schaefer

[CL 32807237 by brandon schaefer in ue5-main branch]
2024-04-08 17:17:04 -04:00
jared cotton
507c2ae365 SOL-4828 - "Split container types between being mutable and immutable"
- 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]
2024-04-08 15:39:20 -04:00
julien stjean
c4d205f74f Removed the cause of the some warning in our asset mirgration test.
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]
2024-04-08 10:46:56 -04:00
francis hurteau
4349bf480d Only make ZenLoader the default loader in editor cases
#jira UE-211343
#rb Zousar.Shaker
[FYI] Danny.Couture

[CL 32777672 by francis hurteau in ue5-main branch]
2024-04-05 18:58:23 -04:00
steve robb
60644cbde8 Fixes for TStrongObjectPtr's operators.
#rb joe.kirchoff

[CL 32769206 by steve robb in ue5-main branch]
2024-04-05 15:15:16 -04:00
charles bloom
7ec83ac2af EditorBulkData : serialize compressed data to the undo buffer without decompressing
#rb paul.chipchase

[CL 32762204 by charles bloom in ue5-main branch]
2024-04-05 12:08:32 -04:00
steve robb
56de3303d7 Replaced ImplicitConv usage in FWeakObjectPtr and TWeakObjectPtr.
[CL 32758635 by steve robb in ue5-main branch]
2024-04-05 09:56:06 -04:00
steve robb
2aeafac0fc Replaced ImplicitCast in a variety of places.
[CL 32757787 by steve robb in ue5-main branch]
2024-04-05 09:19:01 -04:00
paul chipchase
ee70eb2ee5 Add checks before allocating buffers during bulkdata serialization.
#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]
2024-04-05 06:33:52 -04:00
jamie dale
60a6791d92 Updated field/class/enum meta-data localization queries to always return a localizable FText
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]
2024-04-04 16:50:30 -04:00
steve robb
53cd760f41 Removed ImplicitConv usage from TNonNullPointer, TNonNullSubclassOf, TSubclassOf and TSubclassOfField.
[CL 32731617 by steve robb in ue5-main branch]
2024-04-04 12:09:11 -04:00
kirill zorin
1e4f3b5f32 Incr gc: turn on GC barriers for argument-mutating BlueprintCallable C++ functions
#rb Tim.Smith

[CL 32730108 by kirill zorin in ue5-main branch]
2024-04-04 11:33:44 -04:00
steve robb
dcf91f4c00 Removed ImplicitConv usage from TStridedView, TSoftObjectPtr, TStrongObjectPtr and TWeakFieldPtr.
[CL 32728703 by steve robb in ue5-main branch]
2024-04-04 11:02:13 -04:00
steve robb
0464c7c996 Replaced ImplicitConv usage in T[Script/Weak]Interface. Includes a fix to TScriptInterface::operator=(const TScriptInterface<OtherInterfaceType>&).
[CL 32724494 by steve robb in ue5-main branch]
2024-04-04 08:00:13 -04:00
tim smith
7809113a1b Migrate the class generation code into the engine environment class.
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]
2024-04-04 07:51:39 -04:00
steve robb
d41825e38c Replaced ImplicitConv usage in TObjectPtr.
[CL 32723259 by steve robb in ue5-main branch]
2024-04-04 07:00:53 -04:00
robert manuszewski
b8582b64d3 Adding missing GC stats related to initial reference collection and pre-reachability callbacks
#rb Robert.Manuszewski

[CL 32721510 by robert manuszewski in ue5-main branch]
2024-04-04 04:16:08 -04:00
maxime mercier
4dfa6a4d46 Converted the PropertyValueIterator to use new property visitor
#rb Devin.Doucette, logan.buchy, Yoan.StAmant

[CL 32707072 by maxime mercier in ue5-main branch]
2024-04-03 15:10:11 -04:00
andrew scheidecker
c03dc1a1e9 - Make FDoubleProperty and FFloatProperty use Verse's extensional float equality semantics, and support value hashing. This should only affect comparison of NaNs: thanks to -ffast-math/fp:fast compiler flags, the previous behavior of FDoubleProperty::Identical/FDoubleProperty::Identical was for them to treat NaNs as equal to all other values. The new behavior is to treat all NaNs as equal to each other, and unequal to numbers.
- 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]
2024-04-03 10:01:56 -04:00
maxime mercier
dc8ac2e49b New Property Visitor
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]
2024-04-03 09:29:38 -04:00
nick edwards
d4ac2dbff3 UStruct::IsChildOf<T>: Support classes which provide StaticStruct, in addition to those which provide StaticClass.
#rb Steve.Robb

[CL 32695579 by nick edwards in ue5-main branch]
2024-04-03 09:12:36 -04:00
russell johnston
43ee153dd8 Implement defer in VerseVM
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]
2024-04-02 12:33:04 -04:00
steve robb
c1d4c1a99f Moved not-power-of-two ContainerMask out of the enum so that the flags can be viewed in the MSVC debugger.
[CL 32670474 by steve robb in ue5-main branch]
2024-04-02 12:27:46 -04:00