// UObject interface.
void UTransBuffer::Serialize( FArchive& Ar )
{
	check( !Ar.IsPersistent() );

	CheckState();

	Super::Serialize( Ar );

	if ( IsObjectSerializationEnabled() || !Ar.IsObjectReferenceCollector() )
	{
		Ar << UndoBuffer;
	}
	Ar << ResetReason << UndoCount << ActiveCount << ActiveRecordCounts;

	CheckState();
}
// UObject interface.
void UTransBuffer::Serialize( FArchive& Ar )
{
	check( !Ar.IsPersistent() );

	CheckState();

	// Handle garbage collection.
	Super::Serialize( Ar );

	// We cannot support undoing across GC if we allow it to eliminate references so we need
	// to suppress it.
	if ( IsObjectSerializationEnabled() || !Ar.IsObjectReferenceCollector() )
	{
		Ar.AllowEliminatingReferences( false );
		Ar << UndoBuffer;
		Ar.AllowEliminatingReferences( true );
	}
	Ar << ResetReason << UndoCount << ActiveCount;

	CheckState();
}