I read the UE4 garbage collector source code, it seems to me the engine is scanning all the GC-managed objects, not only from the root-set
To be specific, in FRealtimeGC::MarkObjectsAsUnreachable, engine collects all objects into an array “ObjectsToSerialize” from the engine internal object array, then, in TFastReferenceCollector::CollectReferences, it scans every object in “ObjectsToSerialize” to find references
If this is correct, when using cyclic reference, something like a->b b->a, it will cause a memory leak
Is this correct ?