void FScriptObjectReferencer::AddReferencedObjects(FReferenceCollector& Collector)
{
	Collector.AllowEliminatingReferences(false);
	for (auto Object : ScriptCreatedObjects)
	{
		Collector.AddReferencedObject(Object);
	}
	Collector.AllowEliminatingReferences(true);
}
Пример #2
0
void FObjectReferencer::AddReferencedObjects(FReferenceCollector& Collector)
{
	// don't want the collector to NULL pointers to UObject(s) marked for destruction
	Collector.AllowEliminatingReferences(false);
	for (auto& Iterator : ObjectRefs.GetAnnotationMap())
	{
		// annotations with a ref count of zero shouldn't be in the map
		check(Iterator.Value.Count > 0);
		UObjectBase* Object = const_cast<UObjectBase*>(Iterator.Key);
		Collector.AddReferencedObject(Object);
	}
	Collector.AllowEliminatingReferences(true);
}
void UJavascriptContext::AddReferencedObjects(UObject* InThis, FReferenceCollector& Collector)
{
	UJavascriptContext* This = CastChecked<UJavascriptContext>(InThis);

	if (This->JavascriptContext.IsValid())
	{
		Collector.AllowEliminatingReferences(false);

		This->JavascriptContext->AddReferencedObjects(This, Collector);

		Collector.AllowEliminatingReferences(true);
	}

	Super::AddReferencedObjects(This, Collector);
}
void UTransBuffer::AddReferencedObjects(UObject* InThis, FReferenceCollector& Collector)
{	
	UTransBuffer* This = CastChecked<UTransBuffer>(InThis);
	This->CheckState();

	if ( This->IsObjectSerializationEnabled() )
	{
		// We cannot support undoing across GC if we allow it to eliminate references so we need
		// to suppress it.
		Collector.AllowEliminatingReferences(false);
		for( int32 Index = 0; Index < This->UndoBuffer.Num(); Index++ )
		{
			This->UndoBuffer[ Index ].AddReferencedObjects( Collector );
		}
		Collector.AllowEliminatingReferences(true);
	}

	This->CheckState();

	Super::AddReferencedObjects( This, Collector );
}