17#if WITH_VERSE_VM || defined(__INTELLISENSE__)
24#ifndef UE_PACK_FUOBJECT_ITEM
25# define UE_ENABLE_FUOBJECT_ITEM_PACKING 0
26#elif PLATFORM_CPU_ARM_FAMILY && FORCE_ANSI_ALLOCATOR
28# define UE_ENABLE_FUOBJECT_ITEM_PACKING 0
30# define UE_ENABLE_FUOBJECT_ITEM_PACKING UE_PACK_FUOBJECT_ITEM && !UE_WITH_REMOTE_OBJECT_HANDLE
37#if !defined(UE_GC_TRACK_OBJ_AVAILABLE)
38#define UE_GC_TRACK_OBJ_AVAILABLE UE_DEPRECATED_MACRO(5.2, "The UE_GC_TRACK_OBJ_AVAILABLE macro has been deprecated because it is no longer necessary.") 1
64#if !UE_WITH_REMOTE_OBJECT_HANDLE
70#if !UE_ENABLE_FUOBJECT_ITEM_PACKING
75 UE_DEPRECATED(5.6,
"Use GetObject() and SetObject() to access Object.")
92 constexpr static int32 UObjectAlignment = 8;
93 constexpr static int32 UObjectPtrTrailingZeroes = FMath::CountTrailingZeros(UObjectAlignment);
104#if UE_WITH_REMOTE_OBJECT_HANDLE
111#if STATS || ENABLE_STATNAMEDEVENTS_UOBJECT
115#if ENABLE_STATNAMEDEVENTS_UOBJECT
131#if ENABLE_STATNAMEDEVENTS_UOBJECT
134 AutoRTFM::PopOnAbortHandler(Storage);
148#if UE_ENABLE_FUOBJECT_ITEM_PACKING
160#if UE_ENABLE_FUOBJECT_ITEM_PACKING
198#if USING_INSTRUMENTATION || USING_THREAD_SANITISER
201 return FPlatformAtomics::AtomicRead_Relaxed(&
SerialNumber);
207#if UE_WITH_REMOTE_OBJECT_HANDLE
225#if UE_ENABLE_FUOBJECT_ITEM_PACKING
410#if STATS || ENABLE_STATNAMEDEVENTS_UOBJECT
458 if (FPlatformAtomics::InterlockedCompareExchange((
int64*)&
FlagsAndRefCount, NewValue, StartValue) == StartValue)
490 if (FPlatformAtomics::InterlockedCompareExchange((
int64*)&
FlagsAndRefCount, NewValue, StartValue) == StartValue)
520 if (FPlatformAtomics::InterlockedCompareExchange((
int64*)&
FlagsAndRefCount, NewValue, StartValue) == StartValue)
552 if (FPlatformAtomics::InterlockedCompareExchange((
int64*)&
FlagsAndRefCount, NewValue, StartValue) == StartValue)
617 int32 Result = NumElements;
619 check(Result == NumElements);
622 check(Objects[Result].GetObject() ==
nullptr);
631 NumElements +=
Count;
633 check(Objects[Result].GetObject() ==
nullptr);
640 return &Objects[
Index];
646 return &Objects[
Index];
719 NumElementsPerChunk = 64 * 1024,
744 int32 ChunkIndex =
Index / NumElementsPerChunk;
745 while (ChunkIndex >= NumChunks)
750 if (FPlatformAtomics::InterlockedCompareExchangePointer((
void**)Chunk,
NewChunk,
nullptr))
758 check(NumChunks <= MaxChunks);
761 check(ChunkIndex < NumChunks && Objects[ChunkIndex]);
769 , PreAllocatedObjects(nullptr)
779 if (!PreAllocatedObjects)
781 for (
int32 ChunkIndex = 0; ChunkIndex < MaxChunks; ++ChunkIndex)
783 delete[] Objects[ChunkIndex];
788 delete[] PreAllocatedObjects;
801 MaxElements = MaxChunks * NumElementsPerChunk;
808 for (
int32 ChunkIndex = 0; ChunkIndex < MaxChunks; ++ChunkIndex)
810 Objects[ChunkIndex] = PreAllocatedObjects + ChunkIndex * NumElementsPerChunk;
812 NumChunks = MaxChunks;
856 checkf(ChunkIndex < (
uint32)NumChunks,
TEXT(
"ChunkIndex (%d) < NumChunks (%d)"), ChunkIndex, (
int32)NumChunks);
867 checkf(ChunkIndex < (
uint32)NumChunks,
TEXT(
"ChunkIndex (%d) < NumChunks (%d)"), ChunkIndex, (
int32)NumChunks);
903 int32 Result = NumElements;
905 ExpandChunksToIndex(Result +
NumToAdd - 1);
942 friend COREUOBJECT_API UObject*
StaticAllocateObject(
const UClass*,
UObject*,
FName,
EObjectFlags,
EInternalObjectFlags,
bool,
bool*,
UPackage*,
int32,
FRemoteObjectId,
class FGCReconstructionGuard*);
1042 return OpenForDisregardForGC;
1052 return MaxObjectsNotConsideredByGC > 0;
1080 return Object->InternalIndex;
1107 if (ObjectItem && ObjectItem->
GetObject())
1111 ObjectItem =
nullptr;
1165 return ObjFirstGCIndex;
1225 return ObjectIndex <= ObjLastNonGCIndex;
1245 return ObjObjects.
Num();
1255 return ObjObjects.
Num() - (ObjLastNonGCIndex + 1);
1265 return ObjLastNonGCIndex + 1;
1319#if UE_WITH_REMOTE_OBJECT_HANDLE
1330 return ObjectItem->GetRemoteId();
1337#if THREADSAFE_UOBJECTS
1338 ObjObjectsCritical.Lock();
1347#if THREADSAFE_UOBJECTS
1348 ObjObjectsCritical.Unlock();
1372 CurrentObject(nullptr)
1376 Index = Array.ObjLastNonGCIndex;
1407 return !!CurrentObject;
1412 return !(
bool)*
this;
1429 return CurrentObject;
1439 CurrentObject =
nullptr;
1470#if THREADSAFE_UOBJECTS
1478#if THREADSAFE_UOBJECTS
1491 int32 ObjFirstGCIndex;
1493 int32 ObjLastNonGCIndex;
1495 int32 MaxObjectsNotConsideredByGC;
1498 bool OpenForDisregardForGC;
1500 TUObjectArray ObjObjects;
1516#if THREADSAFE_UOBJECTS
1524 bool bShouldRecycleObjectIndices =
true;
1542#if THREADSAFE_UOBJECTS
1550#if THREADSAFE_UOBJECTS
1553 SIZE_T AllocatedSize = 0;
1556 AllocatedSize += Listener->GetAllocatedSize();
1562 return AllocatedSize;
1586#if WITH_VERSE_VM || defined(__INTELLISENSE__)
1602 int32 NumAllocatedClusters;
1604 bool bClustersNeedDissolving;
1616 return Clusters[
Index];
1659 return NumAllocatedClusters;
1665 bClustersNeedDissolving =
true;
1671 return bClustersNeedDissolving;
1687 return ObjectItem ? ObjectItem->
GetObject() :
nullptr;
#define checkSlow(expr)
Definition AssertionMacros.h:332
#define check(expr)
Definition AssertionMacros.h:314
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
#define TSAN_ATOMIC(Type)
Definition CoreMiscDefines.h:147
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
const bool
Definition NetworkReplayStreaming.h:178
#define EInternalObjectFlags_AllFlags
Definition ObjectMacros.h:678
#define EInternalObjectFlags_RootFlags
Definition ObjectMacros.h:679
EInternalObjectFlags
Definition ObjectMacros.h:631
@ Unreachable
Object is not reachable on the object graph.
@ Garbage
Garbage from logical point of view and should not be referenced. This flag is mirrored in EObjectFlag...
@ RootSet
Object will not be garbage collected, even if unreferenced.
EObjectFlags
Definition ObjectMacros.h:552
#define EInternalObjectFlags_MinFlagBitIndex
Definition ObjectMacros.h:675
#define EInternalObjectFlags_RefCountMask
Definition ObjectMacros.h:676
WIDECHAR PROFILER_CHAR
Definition StatsCommon.h:24
CORE_API bool IsInGameThread()
Definition ThreadingBase.cpp:185
::FCriticalSection FTransactionallySafeCriticalSection
Definition TransactionallySafeCriticalSection.h:16
#define UE_ENABLE_FUOBJECT_ITEM_PACKING
Definition UObjectArray.h:25
COREUOBJECT_API FUObjectClusterContainer GUObjectClusters
Definition UObjectArray.cpp:27
COREUOBJECT_API FUObjectArray GUObjectArray
Definition UObjectHash.cpp:55
if(Failed) console_printf("Failed.\n")
Definition UObjectArray.h:716
UE_FORCEINLINE_HINT int32 Num() const
Definition UObjectArray.h:821
~FChunkedFixedUObjectArray()
Definition UObjectArray.h:777
void PreAllocate(int32 InMaxElements, bool bPreAllocateChunks)
Definition UObjectArray.h:797
UE_FORCEINLINE_HINT int32 Capacity() const
Definition UObjectArray.h:831
int64 GetAllocatedSize() const
Definition UObjectArray.h:923
FChunkedFixedUObjectArray()
Definition UObjectArray.h:767
int32 AddSingle()
Definition UObjectArray.h:910
FUObjectItem *** GetRootBlockForDebuggerVisualizers()
Definition UObjectArray.h:918
UE_FORCEINLINE_HINT bool IsValidIndex(int32 Index) const
Definition UObjectArray.h:842
int32 AddRange(int32 NumToAdd)
Definition UObjectArray.h:901
FUObjectItem & operator[](int32 Index)
Definition UObjectArray.h:894
void PrefetchObjectPtr(int32 Index) const
Definition UObjectArray.h:874
FUObjectItem * GetObjectPtr(int32 Index)
Definition UObjectArray.h:862
FUObjectItem const * GetObjectPtr(int32 Index) const
Definition UObjectArray.h:851
FUObjectItem const & operator[](int32 Index) const
Definition UObjectArray.h:888
Definition UObjectArray.h:582
UE_FORCEINLINE_HINT int32 Num() const
Definition UObjectArray.h:654
int32 AddRange(int32 Count)
Definition UObjectArray.h:626
~FFixedUObjectArray()
Definition UObjectArray.h:599
int32 AddSingle()
Definition UObjectArray.h:615
UObjectBase *** GetRootBlockForDebuggerVisualizers()
Definition UObjectArray.h:702
FFixedUObjectArray()
Definition UObjectArray.h:592
FUObjectItem const & operator[](int32 Index) const
Definition UObjectArray.h:685
FUObjectItem & operator[](int32 Index)
Definition UObjectArray.h:692
void PreAllocate(int32 InMaxElements)
Definition UObjectArray.h:608
FUObjectItem * GetObjectPtr(int32 Index)
Definition UObjectArray.h:643
UE_FORCEINLINE_HINT bool IsValidIndex(int32 Index) const
Definition UObjectArray.h:675
UE_FORCEINLINE_HINT int32 Capacity() const
Definition UObjectArray.h:664
FUObjectItem const * GetObjectPtr(int32 Index) const
Definition UObjectArray.h:637
Definition UObjectGlobals.cpp:3494
Definition NameTypes.h:617
Definition ThreadSafeCounter.h:14
Definition UObjectArray.h:963
virtual void NotifyUObjectCreated(const class UObjectBase *Object, int32 Index)=0
virtual ~FUObjectCreateListener()
Definition UObjectArray.h:965
virtual void OnUObjectArrayShutdown()=0
Definition UObjectArray.h:984
virtual SIZE_T GetAllocatedSize() const
Definition UObjectArray.h:1004
virtual void NotifyUObjectDeleted(const class UObjectBase *Object, int32 Index)=0
virtual ~FUObjectDeleteListener()
Definition UObjectArray.h:986
virtual void OnUObjectArrayShutdown()=0
Definition UObjectArray.h:1356
TIterator(EEndTagType, const TIterator &InIter)
Definition UObjectArray.h:1387
bool Advance()
Definition UObjectArray.h:1435
bool operator!=(const TIterator &Rhs) const
Definition UObjectArray.h:1402
bool operator==(const TIterator &Rhs) const
Definition UObjectArray.h:1401
TIterator(const FUObjectArray &InArray, bool bOnlyGCedObjects=false)
Definition UObjectArray.h:1369
const FUObjectArray & GetIteratedArray() const
Definition UObjectArray.h:1453
EEndTagType
Definition UObjectArray.h:1359
@ EndTag
Definition UObjectArray.h:1360
UE_FORCEINLINE_HINT bool operator!() const
Definition UObjectArray.h:1410
UE_FORCEINLINE_HINT void operator++()
Definition UObjectArray.h:1396
UE_FORCEINLINE_HINT FUObjectItem * GetObject() const
Definition UObjectArray.h:1427
UE_FORCEINLINE_HINT int32 GetIndex() const
Definition UObjectArray.h:1415
Definition UObjectArray.h:940
bool IsValid(int32 Index, bool bEvenIfGarbage)
Definition UObjectArray.h:1138
UE_FORCEINLINE_HINT int32 GetObjectArrayNumMinusPermanent() const
Definition UObjectArray.h:1253
void LockInternalArray() const
Definition UObjectArray.h:1335
COREUOBJECT_API FUObjectArray()
Definition UObjectArray.cpp:106
UE_FORCEINLINE_HINT bool IsIndexDisregardForGC(int32 ObjectIndex) const
Definition UObjectArray.h:1223
int32 GetObjectArrayEstimatedAvailable() const
Definition UObjectArray.h:1282
COREUOBJECT_API void OpenDisregardForGC()
Definition UObjectArray.cpp:138
FUObjectItem * IndexToObject(int32 Index, bool bEvenIfGarbage)
Definition UObjectArray.h:1104
bool IsOpenForDisregardForGC() const
Definition UObjectArray.h:1040
COREUOBJECT_API void AllocateUObjectIndex(class UObjectBase *Object, EInternalObjectFlags InitialFlags, int32 AlreadyAllocatedIndex=-1, int32 SerialNumber=0, FRemoteObjectId RemoteId=FRemoteObjectId())
Definition UObjectArray.cpp:230
UE_FORCEINLINE_HINT bool IsDisregardForGC(const class UObjectBase *Object) const
Definition UObjectArray.h:1234
COREUOBJECT_API void DumpUObjectCountsToLog() const
Definition UObjectArray.cpp:571
COREUOBJECT_API void ShutdownUObjectArray()
Definition UObjectArray.cpp:548
SIZE_T GetAllocatedSize() const
Definition UObjectArray.h:1539
int32 GetObjectArrayNumMinusAvailable() const
Definition UObjectArray.h:1274
FUObjectItem * IndexToObject(int32 Index)
Definition UObjectArray.h:1089
UE_FORCEINLINE_HINT bool IsStale(FUObjectItem *ObjectItem, bool bIncludingGarbage)
Definition UObjectArray.h:1145
bool IsStale(int32 Index, bool bIncludingGarbage)
Definition UObjectArray.h:1151
bool DisregardForGCEnabled() const
Definition UObjectArray.h:1050
UE_FORCEINLINE_HINT int32 GetFirstGCIndex() const
Definition UObjectArray.h:1163
SIZE_T GetDeleteListenersAllocatedSize(int32 *OutNumListeners=nullptr) const
Definition UObjectArray.h:1548
UE_FORCEINLINE_HINT int32 ObjectToIndex(const class UObjectBase *Object) const
Definition UObjectArray.h:1078
COREUOBJECT_API int32 AllocateSerialNumber(int32 Index)
Definition UObjectArray.cpp:515
COREUOBJECT_API void AddUObjectCreateListener(FUObjectCreateListener *Listener)
Definition UObjectArray.cpp:436
int32 GetObjectArrayCapacity() const
Definition UObjectArray.h:1290
void UnlockInternalArray() const
Definition UObjectArray.h:1345
ESerialNumberConstants
Definition UObjectArray.h:955
@ START_SERIAL_NUMBER
Definition UObjectArray.h:956
bool IsValid(FUObjectItem *ObjectItem, bool bEvenIfGarbage)
Definition UObjectArray.h:1123
UE_FORCEINLINE_HINT FUObjectItem * IndexToObjectUnsafeForGC(int32 Index)
Definition UObjectArray.h:1099
COREUOBJECT_API void AddUObjectDeleteListener(FUObjectDeleteListener *Listener)
Definition UObjectArray.cpp:458
COREUOBJECT_API void AllocateObjectPool(int32 MaxUObjects, int32 MaxObjectsNotConsideredByGC, bool bPreAllocateObjectArray)
Definition UObjectArray.cpp:116
COREUOBJECT_API void RemoveObjectFromDeleteListeners(UObjectBase *Object)
Definition UObjectArray.cpp:359
COREUOBJECT_API void RemoveUObjectDeleteListener(FUObjectDeleteListener *Listener)
Definition UObjectArray.cpp:472
const TUObjectArray & GetObjectItemArrayUnsafe() const
Definition UObjectArray.h:1534
COREUOBJECT_API void DisableDisregardForGC()
Definition UObjectArray.cpp:206
void UnlockUObjectDeleteListeners()
Definition UObjectArray.h:1476
void LockUObjectDeleteListeners()
Definition UObjectArray.h:1468
UE_FORCEINLINE_HINT int32 GetObjectArrayNumPermanent() const
Definition UObjectArray.h:1263
FUObjectItem * IndexToValidObject(int32 Index, bool bEvenIfGarbage)
Definition UObjectArray.h:1132
int32 GetSerialNumber(int32 Index)
Definition UObjectArray.h:1312
UE_FORCEINLINE_HINT bool IsValidIndex(const UObjectBase *Object) const
Definition UObjectArray.h:1212
friend COREUOBJECT_API UObject * StaticAllocateObject(const UClass *, UObject *, FName, EObjectFlags, EInternalObjectFlags, bool, bool *, UPackage *, int32, FRemoteObjectId, class FGCReconstructionGuard *)
Definition UObjectGlobals.cpp:3576
COREUOBJECT_API void CloseDisregardForGC()
Definition UObjectArray.cpp:146
TUObjectArray & GetObjectItemArrayUnsafe()
Definition UObjectArray.h:1529
COREUOBJECT_API void RemoveUObjectCreateListener(FUObjectCreateListener *Listener)
Definition UObjectArray.cpp:447
FUObjectItem * ObjectToObjectItem(const UObjectBase *Object)
Definition UObjectArray.h:1117
UE_FORCEINLINE_HINT int32 GetObjectArrayNum() const
Definition UObjectArray.h:1243
COREUOBJECT_API void FreeUObjectIndex(class UObjectBase *Object)
Definition UObjectArray.cpp:378
Definition UObjectArray.h:1596
COREUOBJECT_API int32 AllocateCluster(int32 InRootObjectIndex)
Definition UObjectClusters.cpp:58
COREUOBJECT_API void DissolveClusterAndMarkObjectsAsUnreachable(FUObjectItem *RootObjectItem)
Definition UObjectClusters.cpp:181
FUObjectCluster & operator[](int32 Index)
Definition UObjectArray.h:1613
bool ClustersNeedDissolving() const
Definition UObjectArray.h:1669
TArray< FUObjectCluster > & GetClustersUnsafe()
Definition UObjectArray.h:1651
COREUOBJECT_API FUObjectClusterContainer()
Definition UObjectClusters.cpp:51
COREUOBJECT_API void FreeCluster(int32 InClusterIndex)
Definition UObjectClusters.cpp:76
int32 GetNumAllocatedClusters() const
Definition UObjectArray.h:1657
COREUOBJECT_API FUObjectCluster * GetObjectCluster(UObjectBaseUtility *ClusterRootOrObjectFromCluster)
Definition UObjectClusters.cpp:112
COREUOBJECT_API int32 GetMinClusterSize() const
Definition UObjectClusters.cpp:232
COREUOBJECT_API void DissolveClusters(bool bForceDissolveAllClusters=false)
Definition UObjectClusters.cpp:220
void SetClustersNeedDissolving()
Definition UObjectArray.h:1663
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_NODEBUG UE_FORCEINLINE_HINT SIZE_T GetAllocatedSize(void) const
Definition Array.h:1059
Definition GarbageCollectionInternalFlags.h:25
Definition ScopeLock.h:21
Definition UObjectBaseUtility.h:45
Definition UObjectBase.h:59
COREUOBJECT_API void MarkAsReachable() const
Definition GarbageCollection.cpp:6481
int
Definition TestServer.py:515
Definition GarbageCollection.cpp:624
bool GIsIncrementalReachabilityPending
Definition GarbageCollection.cpp:620
Definition UObjectArray.h:565
void CheckUObjectLimitReached(const int32 NumUObjects, const int32 MaxUObjects, const int32 NewUObjectCount)
Definition UObjectArray.h:568
COREUOBJECT_API void FailMaxUObjectCountExceeded(const int32 MaxUObjects, const int32 NewUObjectCount)
Definition UObjectArray.cpp:656
Definition VVMContentScope.cpp:14
COREUOBJECT_API bool CanAllocateUObjects()
Definition UObjectArray.cpp:665
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
static UE_FORCEINLINE_HINT void MemoryBarrier()
Definition AndroidPlatformMisc.h:249
Definition UObjectArray.h:1683
static class UObjectBase * IndexToObject(int32 Index, bool bEvenIfGarbage)
Definition UObjectArray.h:1684
static UE_FORCEINLINE_HINT void * Memzero(void *Dest, SIZE_T Count)
Definition UnrealMemory.h:131
Definition RemoteObjectTypes.h:212
Definition UObjectArray.h:1570
int32 RootIndex
Definition UObjectArray.h:1577
TArray< int32 > MutableObjects
Definition UObjectArray.h:1583
TArray< int32 > Objects
Definition UObjectArray.h:1579
TArray< int32 > ReferencedClusters
Definition UObjectArray.h:1581
TArray< int32 > ReferencedByClusters
Definition UObjectArray.h:1585
bool bNeedsDissolving
Definition UObjectArray.h:1592
FUObjectCluster()
Definition UObjectArray.h:1571
Definition UObjectArray.h:50
UE_FORCEINLINE_HINT void SetGarbage()
Definition UObjectArray.h:324
void AddRef()
Definition UObjectArray.h:355
UE_FORCEINLINE_HINT void SetRootSet()
Definition UObjectArray.h:337
UE_FORCEINLINE_HINT void ClearFlags(EInternalObjectFlags FlagsToClear)
Definition UObjectArray.h:232
UE_FORCEINLINE_HINT bool IsGarbage() const
Definition UObjectArray.h:332
UE_FORCEINLINE_HINT bool HasAnyFlags(EInternalObjectFlags InFlags) const
Definition UObjectArray.h:309
class UObjectBase * GetObject() const
Definition UObjectArray.h:146
int32 SerialNumber
Definition UObjectArray.h:100
FUObjectItem & operator=(const FUObjectItem &)=delete
uint32 ObjectPtrLow
Definition UObjectArray.h:77
int64 FlagsAndRefCount
Definition UObjectArray.h:63
UE_FORCEINLINE_HINT void SetOwnerIndex(int32 OwnerIndex)
Definition UObjectArray.h:172
UE_FORCEINLINE_HINT int32 GetRefCount() const
Definition UObjectArray.h:350
UE_FORCEINLINE_HINT void SetClusterIndex(int32 ClusterIndex)
Definition UObjectArray.h:183
FUObjectItem(FUObjectItem &&)=delete
void ReleaseRef()
Definition UObjectArray.h:383
bool ThisThreadAtomicallyClearedFlag(EInternalObjectFlags FlagToClear)
Definition UObjectArray.h:242
UE_FORCEINLINE_HINT void SetFlags(EInternalObjectFlags FlagsToSet)
Definition UObjectArray.h:218
EInternalObjectFlags GetFlags() const
Definition UObjectArray.h:223
bool ThisThreadAtomicallySetFlag(EInternalObjectFlags FlagToSet)
Definition UObjectArray.h:278
int32 ClusterRootIndex
Definition UObjectArray.h:102
uint8 RemoteId
Definition UObjectArray.h:66
~FUObjectItem()
Definition UObjectArray.h:129
FUObjectItem()
Definition UObjectArray.h:120
int32 GetClusterIndex() const
Definition UObjectArray.h:189
int32 GetSerialNumber() const
Definition UObjectArray.h:195
FUObjectItem & operator=(FUObjectItem &&)=delete
UE_FORCEINLINE_HINT int32 GetOwnerIndex() const
Definition UObjectArray.h:177
UE_FORCEINLINE_HINT bool HasAllFlags(EInternalObjectFlags InFlags) const
Definition UObjectArray.h:314
void SetObject(class UObjectBase *InObject)
Definition UObjectArray.h:158
UE_FORCEINLINE_HINT bool IsUnreachable() const
Definition UObjectArray.h:319
FUObjectItem(const FUObjectItem &)=delete
UE_FORCEINLINE_HINT void ClearGarbage()
Definition UObjectArray.h:328
UE_FORCEINLINE_HINT void ClearRootSet()
Definition UObjectArray.h:341
UE_FORCEINLINE_HINT bool IsRootSet() const
Definition UObjectArray.h:345
Definition LightweightStats.h:416