Commit Graph

6024 Commits

Author SHA1 Message Date
tim smith
f9dbef07af Prepare VerseVM to use a common Verse UClass.
Removed the code that made it into VerseVM.

#rnx
#rb russell.johnston

[CL 32515368 by tim smith in ue5-main branch]
2024-03-26 13:29:24 -04:00
steve robb
e46a5e4d50 Cleaned up a bunch of typedefs which only existed because DECLARE_FIELD didn't support types with commas.
#rb devin.doucette

[CL 32487116 by steve robb in ue5-main branch]
2024-03-25 17:50:28 -04:00
tim smith
8b325dbd30 Fix another compile issue discovered by full Presubmittest.py.
#rnx
#rb tim.smith

[CL 32467017 by tim smith in ue5-main branch]
2024-03-25 07:24:08 -04:00
jordan hoffmann
af3fd37894 [CIS Fix] Removed duplicate use of CLASS_EditInlineNew in logical-or operation
[CL 32461062 by jordan hoffmann in ue5-main branch]
2024-03-23 15:16:48 -04:00
jordan hoffmann
65ec6b872e [BugFix] Values in ReplacedObjects param of FPropertyBagRepository::ReassociateObjects can be nullptr and cause a crash
#jira UE-210403

[CL 32457786 by jordan hoffmann in ue5-main branch]
2024-03-22 21:23:00 -04:00
jordan hoffmann
8e0e31d8a5 [BugFix] Changed SetClassFlags in InstanceDataObjectUtils.cpp to copy less flags. Notibly CLASS_Config is no longer being copied since IDOs don't have full config support.
#rb Phillip.Kavan

[CL 32457697 by jordan hoffmann in ue5-main branch]
2024-03-22 21:18:29 -04:00
russell johnston
f6827f81c9 Make VTask inherit from VObject
Classes derived from VObject should be allocated using VObject::AllocateFastCell to ensure the right layout.

This does not address the chicken-and-egg situation with VClass described in SOL-6150, but it is a step in that direction.

#rb Markus.Breyer

[CL 32439925 by russell johnston in ue5-main branch]
2024-03-22 13:32:33 -04:00
tim smith
bb85064a29 Fix some new compile errors in VerseVM caught by Linux builds.
#rnx
#rb Markus.Breyer

[CL 32438916 by tim smith in ue5-main branch]
2024-03-22 13:11:28 -04:00
phillip kavan
9817b53199 Allow TObjectPtr instances to resolve directly to placeholder-typed references when T=UObject.
Notes:
- For placeholder-typed objects, TObjectPtr<UObject> is considered to be type safe since placeholder types are based on UObject.
- This means we can avoid having to check for and indirectly resolve placeholders via the ptr's internal object handle in these cases.

#jira UE-209831
#rb Francis.Hurteau, Zousar.Shaker

[CL 32434610 by phillip kavan in ue5-main branch]
2024-03-22 11:12:08 -04:00
michael nicolella
22eed94a4c autortfm: rework the way UObject construction works
The goal here is that if a UObject is constructed during a transaction, and then decides to abort, we leave the UObject in an intact-enough state that the GC can come along later to destruct and deallocate the object.

To that end, we move StaticConstructObject_Internal back to instrumented, but execute the UObject malloc and UObjectBase constructor uninstrumented. Then later when the derived constructor runs over the same memory, we run the constructor instrumented, except when it gets down to the UObject constructor level, we run that uninstrumented.

If we abort, the UObject memory will not be freed by the AutoRTFM runtime, the destructor will not be called, but the memory will be rolled back to what the UObject and base constructors initialize it as, so it should be a bare bones object ready for destruction and deallocation.

- added a new attribute to the compiler (autortm_always_open) so we can annotate functions themselves (like constructors) to ensure the entire function isn't instrumented (including code we can't normally wrap, like when the constructor writes the vtable pointer)
#rb Brandon.Schaefer, neil.henning

[CL 32426570 by michael nicolella in ue5-main branch]
2024-03-21 23:46:29 -04:00
matt breindel
2a0454735e Making the asset gatherer tick run on a background thread. In order to do this, it was also necessary to refactor PostLoadAssetRegistryTags, deprecating the existing function and implementing a new ThreadedPostLoadAssetRegistryTagsOverride. The multithreading functionality is disabled in this checkin. -dpcvars=AssetRegistry.TickGatherOnGTOnly=0 will enable it.
#jira UE-204058
[REVIEW] [at]*matt.peters [at]dan.oconnor [at]ben.zeigler [at]robert.millar
[FYI] [at]francis.hurteau
#rb Matt.Peters

[CL 32388964 by matt breindel in ue5-main branch]
2024-03-20 20:13:47 -04:00
devin doucette
7e47a8cc5e Assert on FPropertyTypeName with too many names and minimize its index waste
#rb Francis.Hurteau
#rnx

[CL 32383199 by devin doucette in ue5-main branch]
2024-03-20 17:39:19 -04:00
tim smith
818ddf1754 Fix issue with property types not being registered causing issues with game builds.
#rb russell.johnston

[CL 32375435 by tim smith in ue5-main branch]
2024-03-20 14:28:17 -04:00
danny couture
d1f5b751a9 [GarbageCollect]
- Move PreGarbageCollect broadcast outside of the GC lock because it's too easy for user code to cause deadlocks by calling into other part of the engine.
 - Introduce a new event when GC has started and the GC lock is held
 - Use the new event for zenloader as it provides thread-safety guarantees with async loading thread

#rb Robert.Manuszewski

[CL 32362280 by danny couture in ue5-main branch]
2024-03-20 08:07:04 -04:00
jamie dale
65180b57dd Fixed unreachable code warning
#rb Matt.Peters
#rnx

[CL 32342134 by jamie dale in ue5-main branch]
2024-03-19 18:22:24 -04:00
dan oconnor
8b481009e5 Salvage SCD archetype data when taxonomy evolves
#rb ben.hoffman

[CL 32338323 by dan oconnor in ue5-main branch]
2024-03-19 16:51:30 -04:00
michael nicolella
1429552d7a autortfm:
- add PushOnAbortHandler/PopOnAbortHandler duo so you can register a handler that can later be unregistered. Useful for push/pop semantics where we don't need to do anything OnAbort after the pop
- deploy usage to FHashTableLock

#rb neil.henning

[CL 32333200 by michael nicolella in ue5-main branch]
2024-03-19 14:19:12 -04:00
tim smith
940592e1c6 Fix link issue with API not being marked as exported.
#rb russell.johnston

[CL 32331485 by tim smith in ue5-main branch]
2024-03-19 13:36:23 -04:00
danny couture
fa27c2897b [ZenLoader]
- Make ZenLoader the default loader

#rb Francis.Hurteau

[CL 32327561 by danny couture in ue5-main branch]
2024-03-19 11:52:09 -04:00
phillip kavan
97cab93119 Always enable IDO for placeholder-typed objects.
Since all properties are loose, they require an IDO to be serialized back out at save time.

#rb Francis.Hurteau, jordan.hoffmann

[CL 32319056 by phillip kavan in ue5-main branch]
2024-03-19 00:31:09 -04:00
sebastien lussier
d10d5b8c20 Core - Added [[nodiscard]] to most GetTypeHash() overloads in Core
#rb Steve.Robb

[CL 32316883 by sebastien lussier in ue5-main branch]
2024-03-18 20:08:43 -04:00
keaton stewart
cf7132f060 [Backout] - CL32296647
[FYI] danny.couture
Original CL Desc
-----------------------------------------------------------------
[GarbageCollect]
 - Move PreCollect broadcast outside of the lock because it's too easy for user code to cause deadlocks by calling into other part of the engine.

#jira UE-209921
#rb Robert.Manuszewski, Matt.Breindel

[CL 32314039 by keaton stewart in ue5-main branch]
2024-03-18 18:10:52 -04:00
spencer melnick
bfb1ac0192 Fixing single entry set properties not being saved correctly in some cases.
Making UObject::SaveConfig fall back to the default behavior if a set property has one or fewer elements to match the load behavior

[REVIEW] [at]josh.adams
#tests saving and loading 0, 1, and 2 entry struct set properties

[CL 32310744 by spencer melnick in ue5-main branch]
2024-03-18 16:26:52 -04:00
kirill zorin
668cf75d06 Verse proxy vars: fix nested class var archetype initialization glitch
#rb andy.sonnenburg
#tests Sandbox/SolarisTestbed/.../Attributes/CustomClassVarAccessors.versetest

[CL 32306882 by kirill zorin in ue5-main branch]
2024-03-18 14:37:38 -04:00
steve robb
8517c776db Added UE_DEPRECATED_HEADER which acts like UE_DEPRECATED and should be placed in headers that should no longer be included.
#rb devin.doucette

[CL 32297380 by steve robb in ue5-main branch]
2024-03-18 07:05:59 -04:00