UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::GC::Private::FGCFlags Class Reference

#include <GarbageCollectionInternalFlags.h>

Static Public Member Functions

static FORCEINLINE void SetUnreachable (FUObjectItem *ObjectItem)
 
static FORCEINLINE void SetReachable_ForGC (FUObjectItem *ObjectItem)
 
static FORCEINLINE bool IsReachable_ForGC (const FUObjectItem *ObjectItem)
 
static FORCEINLINE void SetMaybeUnreachable_ForGC (FUObjectItem *ObjectItem)
 
static FORCEINLINE void ClearMaybeUnreachable_ForGC (FUObjectItem *ObjectItem)
 
static FORCEINLINE bool IsMaybeUnreachable_ForGC (const FUObjectItem *ObjectItem)
 
static FORCEINLINE bool IsMaybeUnreachable_ForGC (const UObject *Object)
 
static FORCEINLINE bool ThisThreadAtomicallyClearedRFUnreachable (FUObjectItem *ObjectItem)
 
static FORCEINLINE bool ThisThreadAtomicallySetFlag_ForGC (FUObjectItem *ObjectItem, EInternalObjectFlags Flag)
 
static FORCEINLINE bool ThisThreadAtomicallyClearedFlag_ForGC (FUObjectItem *ObjectItem, EInternalObjectFlags Flag)
 
static FORCEINLINE void FastMarkAsReachableInterlocked_ForGC (FUObjectItem *ObjectItem)
 
static FORCEINLINE void FastMarkAsReachableAndClearReachableInClusterInterlocked_ForGC (FUObjectItem *ObjectItem)
 
static FORCEINLINE bool MarkAsReachableInterlocked_ForGC (FUObjectItem *ObjectItem)
 
static FORCEINLINEconstexpr ::size_t OffsetOfFlags_ForGC ()
 
static FORCEINLINE void SwapReachableAndMaybeUnreachable ()
 
static FORCEINLINE EInternalObjectFlags GetReachableFlagValue_ForGC ()
 
static FORCEINLINE EInternalObjectFlags GetMaybeUnreachableFlagValue_ForGC ()
 
static FORCEINLINE bool IsIncrementalGatherUnreachableSupported ()
 

Detailed Description

Access to internal garbage collector rachability flags. Only GC and GC related functions can use these. NOTHING except GC should be manipulating reachability flags (including EInternalObjectFlags::Unreachable). EInternalObjectFlags::Unreachable is the ONLY reachability flag that can be safely READ by non-GC functions. Reading ReachableObjectFlag and MaybeUnreachableObjectFlag outside of GC is NOT THREAD SAFE.

Member Function Documentation

◆ ClearMaybeUnreachable_ForGC()

static FORCEINLINE void UE::GC::Private::FGCFlags::ClearMaybeUnreachable_ForGC ( FUObjectItem ObjectItem)
inlinestatic

◆ FastMarkAsReachableAndClearReachableInClusterInterlocked_ForGC()

static FORCEINLINE void UE::GC::Private::FGCFlags::FastMarkAsReachableAndClearReachableInClusterInterlocked_ForGC ( FUObjectItem ObjectItem)
inlinestatic

◆ FastMarkAsReachableInterlocked_ForGC()

static FORCEINLINE void UE::GC::Private::FGCFlags::FastMarkAsReachableInterlocked_ForGC ( FUObjectItem ObjectItem)
inlinestatic

◆ GetMaybeUnreachableFlagValue_ForGC()

static FORCEINLINE EInternalObjectFlags UE::GC::Private::FGCFlags::GetMaybeUnreachableFlagValue_ForGC ( )
inlinestatic

◆ GetReachableFlagValue_ForGC()

static FORCEINLINE EInternalObjectFlags UE::GC::Private::FGCFlags::GetReachableFlagValue_ForGC ( )
inlinestatic

◆ IsIncrementalGatherUnreachableSupported()

static FORCEINLINE bool UE::GC::Private::FGCFlags::IsIncrementalGatherUnreachableSupported ( )
inlinestatic

◆ IsMaybeUnreachable_ForGC() [1/2]

static FORCEINLINE bool UE::GC::Private::FGCFlags::IsMaybeUnreachable_ForGC ( const FUObjectItem ObjectItem)
inlinestatic

◆ IsMaybeUnreachable_ForGC() [2/2]

static FORCEINLINE bool UE::GC::Private::FGCFlags::IsMaybeUnreachable_ForGC ( const UObject Object)
inlinestatic

◆ IsReachable_ForGC()

static FORCEINLINE bool UE::GC::Private::FGCFlags::IsReachable_ForGC ( const FUObjectItem ObjectItem)
inlinestatic

◆ MarkAsReachableInterlocked_ForGC()

static FORCEINLINE bool UE::GC::Private::FGCFlags::MarkAsReachableInterlocked_ForGC ( FUObjectItem ObjectItem)
inlinestatic

◆ OffsetOfFlags_ForGC()

static FORCEINLINEconstexpr ::size_t UE::GC::Private::FGCFlags::OffsetOfFlags_ForGC ( )
inlinestatic

◆ SetMaybeUnreachable_ForGC()

static FORCEINLINE void UE::GC::Private::FGCFlags::SetMaybeUnreachable_ForGC ( FUObjectItem ObjectItem)
inlinestatic

◆ SetReachable_ForGC()

static FORCEINLINE void UE::GC::Private::FGCFlags::SetReachable_ForGC ( FUObjectItem ObjectItem)
inlinestatic

◆ SetUnreachable()

static FORCEINLINE void UE::GC::Private::FGCFlags::SetUnreachable ( FUObjectItem ObjectItem)
inlinestatic

◆ SwapReachableAndMaybeUnreachable()

static FORCEINLINE void UE::GC::Private::FGCFlags::SwapReachableAndMaybeUnreachable ( )
inlinestatic

◆ ThisThreadAtomicallyClearedFlag_ForGC()

static FORCEINLINE bool UE::GC::Private::FGCFlags::ThisThreadAtomicallyClearedFlag_ForGC ( FUObjectItem ObjectItem,
EInternalObjectFlags  Flag 
)
inlinestatic

◆ ThisThreadAtomicallyClearedRFUnreachable()

static FORCEINLINE bool UE::GC::Private::FGCFlags::ThisThreadAtomicallyClearedRFUnreachable ( FUObjectItem ObjectItem)
inlinestatic

◆ ThisThreadAtomicallySetFlag_ForGC()

static FORCEINLINE bool UE::GC::Private::FGCFlags::ThisThreadAtomicallySetFlag_ForGC ( FUObjectItem ObjectItem,
EInternalObjectFlags  Flag 
)
inlinestatic

The documentation for this class was generated from the following files: