41 ObjectItem->AtomicallySetFlag_ForGC(ReachableObjectFlag);
46 return !!(ObjectItem->GetFlagsInternal() &
int32(ReachableObjectFlag));
51 ObjectItem->AtomicallyClearFlag_ForGC(ReachableObjectFlag);
52 ObjectItem->AtomicallySetFlag_ForGC(MaybeUnreachableObjectFlag);
57 ObjectItem->AtomicallyClearFlag_ForGC(MaybeUnreachableObjectFlag);
58 ObjectItem->AtomicallySetFlag_ForGC(ReachableObjectFlag);
63 return !!(ObjectItem->GetFlagsInternal() &
int32(MaybeUnreachableObjectFlag));
79 return ObjectItem->AtomicallySetFlag_ForGC(Flag);
84 return ObjectItem->AtomicallyClearFlag_ForGC(Flag);
89 FPlatformAtomics::InterlockedAnd(&ObjectItem->
FlagsAndRefCount, ~(
int64(MaybeUnreachableObjectFlag) << 32));
106 return FUObjectItem::GetFlagsInternal(Old) &
FlagToClear;
122 Swap(ReachableObjectFlag, MaybeUnreachableObjectFlag);
135 return ReachableObjectFlag;
140 return MaybeUnreachableObjectFlag;
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EInternalObjectFlags
Definition ObjectMacros.h:631
@ Unreachable
Object is not reachable on the object graph.
@ ReachableInCluster
External reference to object in cluster exists.
FUObjectArray GUObjectArray
Definition UObjectHash.cpp:55
void LockInternalArray() const
Definition UObjectArray.h:1335
UE_FORCEINLINE_HINT int32 ObjectToIndex(const class UObjectBase *Object) const
Definition UObjectArray.h:1078
void UnlockInternalArray() const
Definition UObjectArray.h:1345
UE_FORCEINLINE_HINT FUObjectItem * IndexToObjectUnsafeForGC(int32 Index)
Definition UObjectArray.h:1099
Definition GarbageCollectionInternalFlags.h:25
static FORCEINLINE void SwapReachableAndMaybeUnreachable()
Definition GarbageCollectionInternalFlags.h:116
static FORCEINLINE bool IsMaybeUnreachable_ForGC(const UObject *Object)
Definition GarbageCollectionInternalFlags.h:66
static FORCEINLINE void FastMarkAsReachableAndClearReachableInClusterInterlocked_ForGC(FUObjectItem *ObjectItem)
Definition GarbageCollectionInternalFlags.h:93
static FORCEINLINE bool ThisThreadAtomicallyClearedRFUnreachable(FUObjectItem *ObjectItem)
Definition GarbageCollectionInternalFlags.h:72
static FORCEINLINE bool IsMaybeUnreachable_ForGC(const FUObjectItem *ObjectItem)
Definition GarbageCollectionInternalFlags.h:61
static FORCEINLINE bool MarkAsReachableInterlocked_ForGC(FUObjectItem *ObjectItem)
Definition GarbageCollectionInternalFlags.h:99
static FORCEINLINE bool IsReachable_ForGC(const FUObjectItem *ObjectItem)
Definition GarbageCollectionInternalFlags.h:44
static FORCEINLINE void SetUnreachable(FUObjectItem *ObjectItem)
Definition GarbageCollectionInternalFlags.h:34
static FORCEINLINE EInternalObjectFlags GetMaybeUnreachableFlagValue_ForGC()
Definition GarbageCollectionInternalFlags.h:138
static FORCEINLINE EInternalObjectFlags GetReachableFlagValue_ForGC()
Definition GarbageCollectionInternalFlags.h:133
static FORCEINLINEconstexpr ::size_t OffsetOfFlags_ForGC()
Definition GarbageCollectionInternalFlags.h:111
static FORCEINLINE bool ThisThreadAtomicallyClearedFlag_ForGC(FUObjectItem *ObjectItem, EInternalObjectFlags Flag)
Definition GarbageCollectionInternalFlags.h:82
static FORCEINLINE void FastMarkAsReachableInterlocked_ForGC(FUObjectItem *ObjectItem)
Definition GarbageCollectionInternalFlags.h:87
static FORCEINLINE void SetReachable_ForGC(FUObjectItem *ObjectItem)
Definition GarbageCollectionInternalFlags.h:39
static FORCEINLINE void SetMaybeUnreachable_ForGC(FUObjectItem *ObjectItem)
Definition GarbageCollectionInternalFlags.h:49
static FORCEINLINE bool ThisThreadAtomicallySetFlag_ForGC(FUObjectItem *ObjectItem, EInternalObjectFlags Flag)
Definition GarbageCollectionInternalFlags.h:77
static FORCEINLINE void ClearMaybeUnreachable_ForGC(FUObjectItem *ObjectItem)
Definition GarbageCollectionInternalFlags.h:55
static FORCEINLINE bool IsIncrementalGatherUnreachableSupported()
Definition GarbageCollectionInternalFlags.h:143
Definition GarbageCollection.cpp:624
EInternalObjectFlags GMaybeUnreachableObjectFlag
Definition GarbageCollection.cpp:618
EInternalObjectFlags GReachableObjectFlag
Definition GarbageCollection.cpp:612
Definition UObjectArray.h:50
int64 FlagsAndRefCount
Definition UObjectArray.h:63