-
Notifications
You must be signed in to change notification settings - Fork 0
swift_arrayAssignWithCopyBackToFront(________)
The type UnsafeRawPointer in the case of the array function signatures
actually represent OpaqueValue*. Until That is properly bridged over,
it is what it is. Any.Type Represents the self parameter or Metadata.
This follows the same principle. Until the proper Array metadata is bridged,
we leave it be. This may not be the best solution so every suggestion
is appreciated
@_silgen_name("swift_arrayAssignWithCopyBackToFront")
public func swift_arrayAssignWithCopyBackToFront(
_ destination: UnsafeRawPointer,
_ source: UnsafeRawPointer,
_ count: Int,
_ self: Any.Type
)All the array functions are wrapping the singular function array_copy_operation.
The array_copy_operation function acts as one size fits all for all initializing
and copying functions for arrays. There are three things that determine the route
that it takes to copy values or initialize them from one array to another. These
are (1) The destination operation, (2) the source operation, and finally (3) the
copy kind. Before explaining what they do, take note that the value passed in as
self is the ValueWitnessTable that will be used for the operations.
What the destination operation determines is wether the ValueWitnessTable will
be created or whether it will be copied into. These are determined by the c++
template values ArrayDest::Init, and ArrayDest::Assign respectively. The source
operation determines how the data will be taken from the source object. This can
be described with the C++ template types ArraySource::Copy and ArraySource::Take.
Finally, the copy kind determines how the values from the source will be copied into
the destination object. This is described with the types ArrayCopy::NoAlias,
ArrayCopy::FrontToBack and ArrayCopy::BackToFront. What's interesting about
this specifically, is that these will apply to both types of ValueWitnessTable
and regular POD (Plain Old Data) types, but with functions like memmove and
memcopy in the case of those other types. For the POD types, if the copy kind is
ArrayCopy::NoAlias the function used is memcpy while the other two used memmove.
The functions for this are named in a way that allows you to specify the C++ template values. Here's an abstract representation of the initializing functions and the assigning functions:
`array(Init|Assign)With(Copy|Take)(NoAlias|FrontToBack|BackToFront)(arguments...)`
the arrayDestroy function does not follow these rules.
Using an already existant array and associated heap object, this
assigns values from the source object object to the destination
by copying them from the back of the object to the front. When
the witness table is POD it uses memmove for the memory operation.
When not POD, however, it will default to a witness function.
-
C++ Template Values:
ArrayDest::AssignArraySource::CopyArrayCopy::BackToFront
- destination: The destination heap object.
- source: The source heap object.
- count: Amount of items in the source object.
- self: The destinations initialized metadata.
Generated at 2022-06-15T08:34:33-0700 using swift-doc 1.0.0-rc.1.
Types
- ClassDescriptor
- ClassDescriptor.InternalRepresentation
- ClassMetadata
- ClassMetadata.Flags
- ClassMetadata.MetadataStructure
- ContextDescriptor
- ContextDescriptor.Flags
- ContextDescriptor.InternalRepresentation
- ContextDescriptor.Kind
- EnumDescriptor
- EnumDescriptor.InternalRepresentation
- EnumMetadata
- EnumMetadata.MetadataStructure
- ExistentialMetadata
- ExistentialMetadata.Flags
- ExistentialMetadata.InternalRepresentation
- ExistentialMetadata.SpecialProtocol
- ExtensionDescriptor
- ExtensionDescriptor.InternalRepresentation
- FunctionMetadata
- FunctionMetadata.MetadataStructure
- GenericContextDescriptor
- GenericContextDescriptor.GenericParameterDescriptor
- GenericContextDescriptor.GenericPrarameterKind
- GenericContextDescriptor.InternalRepresentation
- GenericRequirementDescriptor
- GenericRequirementDescriptor.Flags
- GenericRequirementDescriptor.GenericRequirementKind
- GenericRequirementDescriptor.GenericRequirementLayoutKind
- GenericRequirementDescriptor.InternalRepresentation
- ModuleDescriptor
- ModuleDescriptor.InternalRepresentation
- PointerAuthentication
- ProtocolDescriptor
- ProtocolDescriptor.Flags
- ProtocolDescriptor.InternalRepresentation
- ProtocolMetadata
- ProtocolMetadata.MetadataStructure
- ProtocolRequirement
- ProtocolRequirement.Flags
- ProtocolRequirement.InternalRepresentation
- ProtocolRequirement.Kind
- RuntimeModifiableBuilder
- SignedPointer
- StructDescriptor
- StructDescriptor.InternalRepresentation
- StructMetadata
- StructMetadata.MetadataStructure
- TupleElementMetadata
- TupleElementMetadata.InternalRepresentation
- TupleMetadata
- TupleMetadata.MetadataStructure
- TupleMetadata.TupleElement
- TypeDescriptor
- TypeDescriptor.Flags
- TypeDescriptor.InternalRepresentation
- TypeDescriptor.TypeReferenceKind
- TypeMetadataKind
- ValueWitnessTable
- ValueWitnessTable.Flags
- ValueWitnessTable.InternalRepresentation
Protocols
Global Typealiases
Global Functions
- _Block_copy(_:)
- _Block_release(_:)
- swift_allocBox(_:)
- swift_allocObject(_:_:_:)
- swift_allocateGenericClassMetadata(_:_:_:)
- swift_allocateGenericValueMetadata(_:_:_:_:)
- swift_arrayAssignWithCopyBackToFront(_:_:_:_:)
- swift_arrayAssignWithCopyFrontToBack(_:_:_:_:)
- swift_arrayAssignWithCopyNoAlias(_:_:_:_:)
- swift_arrayDestroy(_:_:_:)
- swift_arrayInitWithCopy(_:_:_:_:)
- swift_autoDiffAllocateSubContext(_:_:)
- swift_autoDiffCreateLinearMapContext(_:)
- swift_autoDiffProjectTopLevelSubcontext(_:)
- swift_beginAccess(_:_:_:)
- swift_bridgeObjectRelease(_:)
- swift_bridgeObjectRelease_n(_:_:)
- swift_bridgeObjectRetain(_:)
- swift_bridgeObjectRetain_n(_:_:)
- swift_bridgeRelease(_:)
- swift_checkMetadataState(_:_:)
- swift_compareTypeContextDescriptors(_:_:)
- swift_conformsToProtocol(_:_:)
- swift_continuation_await(_:)
- swift_continuation_init(_:_:)
- swift_continuation_resume(_:)
- swift_continuation_throwingResume(_:)
- swift_continuation_throwingResumeWithError(_:_:)
- swift_copyPOD(_:_:_:)
- swift_deallocClassInstance(_:_:_:)
- swift_deallocObject(_:_:_:)
- swift_deallocPartialClassInstance(_:)
- swift_deallocUninitializedObject(_:_:_:)
- swift_defaultActor_deallocate(_:)
- swift_defaultActor_deallocateResilient(_:)
- swift_defaultActor_destroy(_:)
- swift_defaultActor_initialize(_:)
- swift_deletedMethodError()
- swift_distributedActor_remote_initialize(_:)
- swift_dynamicCast(_:_:_:_:_:)
- swift_dynamicCastClass(_:_:)
- swift_dynamicCastClassUnconditional(_:_:_:_:_:)
- swift_dynamicCastMetatype(_:_:)
- swift_dynamicCastMetatypeToObjectConditional(_:)
- swift_dynamicCastMetatypeToObjectUnconditional(_:)
- swift_dynamicCastMetatypeUnconditional(_:_:_:_:_:)
- swift_dynamicCastObjCClass(_:_:)
- swift_dynamicCastObjCClassMetatype(_:_:)
- swift_dynamicCastObjCClassMetatypeUnconditional(_:_:_:_:_:)
- swift_dynamicCastObjCClassUnconditional(_:_:_:_:_:)
- swift_dynamicCastObjCProtocolConditional(_:_:_:)
- swift_dynamicCastObjCProtocolUnconditional(_:_:_:_:_:_:)
- swift_dynamicCastTypeToObjCProtocolConditional(_:_:_:)
- swift_dynamicCastTypeToObjCProtocolUnconditional(_:_:_:_:_:_:)
- swift_dynamicCastUnknownClass(_:_:)
- swift_dynamicCastUnknownClassUnconditional(_:_:_:_:_:)
- swift_endAccess(_:)
- swift_errorInMain(_:)
- swift_errorRelease(_:)
- swift_errorRetain(_:)
- swift_getAssociatedConformanceWitness(_:_:_:_:_:)
- swift_getAssociatedTypeWitness(_:_:_:_:_:)
- swift_getCanonicalPrespecializedGenericMetadata(_:_:_:_:)
- swift_getCanonicalSpecializedMetadata(_:_:_:)
- swift_getDynamicType(_:_:_:)
- swift_getEnumCaseMultiPayload(_:_:)
- swift_getEnumTagSinglePayloadGeneric(_:_:_:_:)
- swift_getExistentialMetatypeMetadata(_:)
- swift_getExistentialTypeMetadata(_:_:_:_:)
- swift_getForeignTypeMetadata(_:)
- swift_getFunctionTypeMetadata(_:_:_:_:)
- swift_initWithTakeBackToFront(_:_:_:_:)
- swift_initWithTakeFrontToBack(_:_:_:_:)
- swift_initWithTakeNoAlias(_:_:_:_:)