void GetObjectsWithAnyMarks(TArray<UObject *>& Results, EObjectMark Marks) { // We don't want to return any objects that are currently being background loaded unless we're using the object iterator during async loading. EInternalObjectFlags ExclusionFlags = EInternalObjectFlags::Unreachable; if (!IsInAsyncLoadingThread()) { ExclusionFlags |= EInternalObjectFlags::AsyncLoading; } const TMap<const UObjectBase *, FObjectMark>& Map = MarkAnnotation.GetAnnotationMap(); Results.Empty(Map.Num()); for (TMap<const UObjectBase *, FObjectMark>::TConstIterator It(Map); It; ++It) { if (It.Value().Marks & Marks) { UObject* Item = (UObject*)It.Key(); if (!Item->HasAnyInternalFlags(ExclusionFlags)) { Results.Add(Item); } } } }