mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
[Runtime] Rename CVW entry points for compatibility
This commit is contained in:
@@ -47,6 +47,11 @@ void swift_initEnumMetadataSingleCase(EnumMetadata *enumType,
|
||||
EnumLayoutFlags flags,
|
||||
const TypeLayout *payload);
|
||||
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
void swift_cvw_initEnumMetadataSingleCaseWithLayoutString(
|
||||
EnumMetadata *self, EnumLayoutFlags layoutFlags,
|
||||
const Metadata *payloadType);
|
||||
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
void swift_initEnumMetadataSingleCaseWithLayoutString(
|
||||
EnumMetadata *self, EnumLayoutFlags layoutFlags,
|
||||
@@ -65,6 +70,11 @@ void swift_initEnumMetadataSinglePayload(EnumMetadata *enumType,
|
||||
const TypeLayout *payload,
|
||||
unsigned emptyCases);
|
||||
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
void swift_cvw_initEnumMetadataSinglePayloadWithLayoutString(
|
||||
EnumMetadata *enumType, EnumLayoutFlags flags, const Metadata *payload,
|
||||
unsigned emptyCases);
|
||||
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
void swift_initEnumMetadataSinglePayloadWithLayoutString(
|
||||
EnumMetadata *enumType, EnumLayoutFlags flags, const Metadata *payload,
|
||||
@@ -123,6 +133,11 @@ void swift_initEnumMetadataMultiPayload(EnumMetadata *enumType,
|
||||
unsigned numPayloads,
|
||||
const TypeLayout * const *payloadTypes);
|
||||
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
void swift_cvw_initEnumMetadataMultiPayloadWithLayoutString(
|
||||
EnumMetadata *enumType, EnumLayoutFlags flags, unsigned numPayloads,
|
||||
const Metadata *const *payloadTypes);
|
||||
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
void swift_initEnumMetadataMultiPayloadWithLayoutString(EnumMetadata *enumType,
|
||||
EnumLayoutFlags flags,
|
||||
|
||||
@@ -319,6 +319,12 @@ swift_allocateGenericClassMetadata(const ClassDescriptor *description,
|
||||
const void *arguments,
|
||||
const GenericClassMetadataPattern *pattern);
|
||||
|
||||
SWIFT_EXTERN_C SWIFT_RETURNS_NONNULL SWIFT_NODISCARD
|
||||
SWIFT_RUNTIME_EXPORT_ATTRIBUTE ClassMetadata *
|
||||
swift_cvw_allocateGenericClassMetadataWithLayoutString(
|
||||
const ClassDescriptor *description, const void *arguments,
|
||||
const GenericClassMetadataPattern *pattern);
|
||||
|
||||
SWIFT_EXTERN_C SWIFT_RETURNS_NONNULL SWIFT_NODISCARD SWIFT_RUNTIME_EXPORT_ATTRIBUTE
|
||||
ClassMetadata *
|
||||
swift_allocateGenericClassMetadataWithLayoutString(
|
||||
@@ -336,6 +342,12 @@ swift_allocateGenericValueMetadata(const ValueTypeDescriptor *description,
|
||||
const GenericValueMetadataPattern *pattern,
|
||||
size_t extraDataSize);
|
||||
|
||||
SWIFT_EXTERN_C SWIFT_RETURNS_NONNULL SWIFT_NODISCARD
|
||||
SWIFT_RUNTIME_EXPORT_ATTRIBUTE ValueMetadata *
|
||||
swift_cvw_allocateGenericValueMetadataWithLayoutString(
|
||||
const ValueTypeDescriptor *description, const void *arguments,
|
||||
const GenericValueMetadataPattern *pattern, size_t extraDataSize);
|
||||
|
||||
SWIFT_EXTERN_C SWIFT_RETURNS_NONNULL SWIFT_NODISCARD SWIFT_RUNTIME_EXPORT_ATTRIBUTE
|
||||
ValueMetadata *
|
||||
swift_allocateGenericValueMetadataWithLayoutString(
|
||||
@@ -674,6 +686,12 @@ void swift_initStructMetadata(StructMetadata *self,
|
||||
const TypeLayout * const *fieldTypes,
|
||||
uint32_t *fieldOffsets);
|
||||
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
void swift_cvw_initStructMetadataWithLayoutString(
|
||||
StructMetadata *self, StructLayoutFlags flags, size_t numFields,
|
||||
const uint8_t *const *fieldTypes, const uint8_t *fieldTags,
|
||||
uint32_t *fieldOffsets);
|
||||
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
void swift_initStructMetadataWithLayoutString(StructMetadata *self,
|
||||
StructLayoutFlags flags,
|
||||
|
||||
@@ -1027,12 +1027,12 @@ FUNCTION(AllocateGenericClassMetadata, Swift, swift_allocateGenericClassMetadata
|
||||
EFFECT(MetaData),
|
||||
UNKNOWN_MEMEFFECTS)
|
||||
|
||||
// Metadata *swift_allocateGenericClassMetadataWithLayoutString(
|
||||
// Metadata *swift_cvw_allocateGenericClassMetadataWithLayoutString(
|
||||
// ClassDescriptor *type,
|
||||
// const void * const *arguments,
|
||||
// const void *template);
|
||||
FUNCTION(AllocateGenericClassMetadataWithLayoutString,
|
||||
Swift, swift_allocateGenericClassMetadataWithLayoutString,
|
||||
Swift, swift_cvw_allocateGenericClassMetadataWithLayoutString,
|
||||
C_CC, AlwaysAvailable,
|
||||
RETURNS(TypeMetadataPtrTy),
|
||||
ARGS(TypeContextDescriptorPtrTy, Int8PtrPtrTy, Int8PtrTy),
|
||||
@@ -1052,13 +1052,13 @@ FUNCTION(AllocateGenericValueMetadata, Swift, swift_allocateGenericValueMetadata
|
||||
EFFECT(MetaData),
|
||||
UNKNOWN_MEMEFFECTS)
|
||||
|
||||
// Metadata *swift_allocateGenericValueMetadataWithLayoutString(
|
||||
// Metadata *swift_cvw_allocateGenericValueMetadataWithLayoutString(
|
||||
// ValueTypeDescriptor *type,
|
||||
// const void * const *arguments,
|
||||
// const void *template,
|
||||
// size_t extraSize);
|
||||
FUNCTION(AllocateGenericValueMetadataWithLayoutString,
|
||||
Swift, swift_allocateGenericValueMetadataWithLayoutString,
|
||||
Swift, swift_cvw_allocateGenericValueMetadataWithLayoutString,
|
||||
C_CC, AlwaysAvailable,
|
||||
RETURNS(TypeMetadataPtrTy),
|
||||
ARGS(TypeContextDescriptorPtrTy, Int8PtrPtrTy, Int8PtrTy, SizeTy),
|
||||
@@ -1489,14 +1489,14 @@ FUNCTION(InitStructMetadata,
|
||||
EFFECT(MetaData),
|
||||
UNKNOWN_MEMEFFECTS)
|
||||
|
||||
// void swift_initStructMetadataWithLayoutString(Metadata *structType,
|
||||
// void swift_cvw_initStructMetadataWithLayoutString(Metadata *structType,
|
||||
// StructLayoutFlags flags,
|
||||
// size_t numFields,
|
||||
// uint8_t * const *fieldTypes,
|
||||
// const uint8_t *fieldTags
|
||||
// uint32_t *fieldOffsets);
|
||||
FUNCTION(InitStructMetadataWithLayoutString,
|
||||
Swift, swift_initStructMetadataWithLayoutString, C_CC, AlwaysAvailable,
|
||||
Swift, swift_cvw_initStructMetadataWithLayoutString, C_CC, AlwaysAvailable,
|
||||
RETURNS(VoidTy),
|
||||
ARGS(TypeMetadataPtrTy, SizeTy, SizeTy,
|
||||
Int8PtrPtrTy->getPointerTo(0),
|
||||
@@ -1518,11 +1518,11 @@ FUNCTION(InitEnumMetadataSingleCase,
|
||||
EFFECT(MetaData),
|
||||
UNKNOWN_MEMEFFECTS)
|
||||
|
||||
// void swift_initEnumMetadataSingleCaseWithLayoutString(Metadata *enumType,
|
||||
// void swift_cvw_initEnumMetadataSingleCaseWithLayoutString(Metadata *enumType,
|
||||
// EnumLayoutFlags flags,
|
||||
// Metadata *payload);
|
||||
FUNCTION(InitEnumMetadataSingleCaseWithLayoutString,
|
||||
Swift, swift_initEnumMetadataSingleCaseWithLayoutString,
|
||||
Swift, swift_cvw_initEnumMetadataSingleCaseWithLayoutString,
|
||||
C_CC, AlwaysAvailable,
|
||||
RETURNS(VoidTy),
|
||||
ARGS(TypeMetadataPtrTy, SizeTy, TypeMetadataPtrTy),
|
||||
@@ -1543,12 +1543,12 @@ FUNCTION(InitEnumMetadataSinglePayload,
|
||||
EFFECT(MetaData),
|
||||
UNKNOWN_MEMEFFECTS)
|
||||
|
||||
// void swift_initEnumMetadataSinglePayloadWithLayoutString(Metadata *enumType,
|
||||
// void swift_cvw_initEnumMetadataSinglePayloadWithLayoutString(Metadata *enumType,
|
||||
// EnumLayoutFlags flags,
|
||||
// Metadata *payload,
|
||||
// unsigned num_empty_cases);
|
||||
FUNCTION(InitEnumMetadataSinglePayloadWithLayoutString,
|
||||
Swift, swift_initEnumMetadataSinglePayloadWithLayoutString,
|
||||
Swift, swift_cvw_initEnumMetadataSinglePayloadWithLayoutString,
|
||||
C_CC, AlwaysAvailable,
|
||||
RETURNS(VoidTy),
|
||||
ARGS(TypeMetadataPtrTy, SizeTy, TypeMetadataPtrTy, Int32Ty),
|
||||
@@ -1570,12 +1570,12 @@ FUNCTION(InitEnumMetadataMultiPayload,
|
||||
UNKNOWN_MEMEFFECTS)
|
||||
|
||||
// void
|
||||
// swift_initEnumMetadataMultiPayloadWithLayoutString(Metadata *enumType,
|
||||
// swift_cvw_initEnumMetadataMultiPayloadWithLayoutString(Metadata *enumType,
|
||||
// EnumLayoutFlags layoutFlags,
|
||||
// size_t numPayloads,
|
||||
// Metadata * const *payloadTypes);
|
||||
FUNCTION(InitEnumMetadataMultiPayloadWithLayoutString,
|
||||
Swift, swift_initEnumMetadataMultiPayloadWithLayoutString,
|
||||
Swift, swift_cvw_initEnumMetadataMultiPayloadWithLayoutString,
|
||||
C_CC, AlwaysAvailable,
|
||||
RETURNS(VoidTy),
|
||||
ARGS(TypeMetadataPtrTy, SizeTy, SizeTy, TypeMetadataPtrPtrTy),
|
||||
@@ -2684,9 +2684,9 @@ FUNCTION(StoreMultiPayloadEnumTagSinglePayload,
|
||||
EFFECT(NoEffect),
|
||||
UNKNOWN_MEMEFFECTS)
|
||||
|
||||
// void swift_generic_destroy(opaque*, const Metadata* type);
|
||||
// void swift_cvw_destroy(opaque*, const Metadata* type);
|
||||
FUNCTION(GenericDestroy,
|
||||
Swift, swift_generic_destroy,
|
||||
Swift, swift_cvw_destroy,
|
||||
C_CC, AlwaysAvailable,
|
||||
RETURNS(VoidTy),
|
||||
ARGS(Int8PtrTy, TypeMetadataPtrTy),
|
||||
@@ -2695,9 +2695,9 @@ FUNCTION(GenericDestroy,
|
||||
UNKNOWN_MEMEFFECTS)
|
||||
|
||||
|
||||
// void *swift_generic_assignWithCopy(opaque* dest, opaque* src, const Metadata* type);
|
||||
// void *swift_cvw_assignWithCopy(opaque* dest, opaque* src, const Metadata* type);
|
||||
FUNCTION(GenericAssignWithCopy,
|
||||
Swift, swift_generic_assignWithCopy,
|
||||
Swift, swift_cvw_assignWithCopy,
|
||||
C_CC, AlwaysAvailable,
|
||||
RETURNS(Int8PtrTy),
|
||||
ARGS(Int8PtrTy, Int8PtrTy, TypeMetadataPtrTy),
|
||||
@@ -2705,9 +2705,9 @@ FUNCTION(GenericAssignWithCopy,
|
||||
EFFECT(RefCounting, Deallocating),
|
||||
UNKNOWN_MEMEFFECTS)
|
||||
|
||||
// void *swift_generic_assignWithTake(opaque* dest, opaque* src, const Metadata* type);
|
||||
// void *swift_cvw_assignWithTake(opaque* dest, opaque* src, const Metadata* type);
|
||||
FUNCTION(GenericAssignWithTake,
|
||||
Swift, swift_generic_assignWithTake,
|
||||
Swift, swift_cvw_assignWithTake,
|
||||
C_CC, AlwaysAvailable,
|
||||
RETURNS(Int8PtrTy),
|
||||
ARGS(Int8PtrTy, Int8PtrTy, TypeMetadataPtrTy),
|
||||
@@ -2715,9 +2715,9 @@ FUNCTION(GenericAssignWithTake,
|
||||
EFFECT(RefCounting, Deallocating),
|
||||
UNKNOWN_MEMEFFECTS)
|
||||
|
||||
// void *swift_generic_initWithCopy(opaque* dest, opaque* src, const Metadata* type);
|
||||
// void *swift_cvw_initWithCopy(opaque* dest, opaque* src, const Metadata* type);
|
||||
FUNCTION(GenericInitWithCopy,
|
||||
Swift, swift_generic_initWithCopy,
|
||||
Swift, swift_cvw_initWithCopy,
|
||||
C_CC, AlwaysAvailable,
|
||||
RETURNS(Int8PtrTy),
|
||||
ARGS(Int8PtrTy, Int8PtrTy, TypeMetadataPtrTy),
|
||||
@@ -2725,9 +2725,9 @@ FUNCTION(GenericInitWithCopy,
|
||||
EFFECT(RefCounting),
|
||||
UNKNOWN_MEMEFFECTS)
|
||||
|
||||
// void *swift_generic_initWithTake(opaque* dest, opaque* src, const Metadata* type);
|
||||
// void *swift_cvw_initWithTake(opaque* dest, opaque* src, const Metadata* type);
|
||||
FUNCTION(GenericInitWithTake,
|
||||
Swift, swift_generic_initWithTake,
|
||||
Swift, swift_cvw_initWithTake,
|
||||
C_CC, AlwaysAvailable,
|
||||
RETURNS(Int8PtrTy),
|
||||
ARGS(Int8PtrTy, Int8PtrTy, TypeMetadataPtrTy),
|
||||
@@ -2735,9 +2735,9 @@ FUNCTION(GenericInitWithTake,
|
||||
EFFECT(RefCounting),
|
||||
UNKNOWN_MEMEFFECTS)
|
||||
|
||||
// void *swift_generic_initializeBufferWithCopyOfBuffer(ValueBuffer* dest, ValueBuffer* src, const Metadata* type);
|
||||
// void *swift_cvw_initializeBufferWithCopyOfBuffer(ValueBuffer* dest, ValueBuffer* src, const Metadata* type);
|
||||
FUNCTION(GenericInitializeBufferWithCopyOfBuffer,
|
||||
Swift, swift_generic_initializeBufferWithCopyOfBuffer,
|
||||
Swift, swift_cvw_initializeBufferWithCopyOfBuffer,
|
||||
C_CC, AlwaysAvailable,
|
||||
RETURNS(Int8PtrTy),
|
||||
ARGS(getFixedBufferTy()->getPointerTo(),
|
||||
@@ -2747,10 +2747,10 @@ FUNCTION(GenericInitializeBufferWithCopyOfBuffer,
|
||||
EFFECT(RefCounting),
|
||||
UNKNOWN_MEMEFFECTS)
|
||||
|
||||
// unsigned swift_singletonEnum_getEnumTag(swift::OpaqueValue *address,
|
||||
// unsigned swift_cvw_singletonEnum_getEnumTag(swift::OpaqueValue *address,
|
||||
// const Metadata *metadata);
|
||||
FUNCTION(SingletonEnumGetEnumTag,
|
||||
Swift, swift_singletonEnum_getEnumTag,
|
||||
Swift, swift_cvw_singletonEnum_getEnumTag,
|
||||
C_CC, AlwaysAvailable,
|
||||
RETURNS(Int32Ty),
|
||||
ARGS(Int8PtrTy, TypeMetadataPtrTy),
|
||||
@@ -2758,11 +2758,11 @@ FUNCTION(SingletonEnumGetEnumTag,
|
||||
EFFECT(NoEffect),
|
||||
UNKNOWN_MEMEFFECTS)
|
||||
|
||||
// void swift_singletonEnum_destructiveInjectEnumTag(swift::OpaqueValue *address,
|
||||
// void swift_cvw_singletonEnum_destructiveInjectEnumTag(swift::OpaqueValue *address,
|
||||
// unsigned tag,
|
||||
// const Metadata *metadata)
|
||||
FUNCTION(SingletonEnumDestructiveInjectEnumTag,
|
||||
Swift, swift_singletonEnum_destructiveInjectEnumTag,
|
||||
Swift, swift_cvw_singletonEnum_destructiveInjectEnumTag,
|
||||
C_CC, AlwaysAvailable,
|
||||
RETURNS(VoidTy),
|
||||
ARGS(Int8PtrTy, Int32Ty, TypeMetadataPtrTy),
|
||||
@@ -2770,10 +2770,10 @@ FUNCTION(SingletonEnumDestructiveInjectEnumTag,
|
||||
EFFECT(NoEffect),
|
||||
UNKNOWN_MEMEFFECTS)
|
||||
|
||||
// unsigned swift_enumSimple_getEnumTag(swift::OpaqueValue *address,
|
||||
// unsigned swift_cvw_enumSimple_getEnumTag(swift::OpaqueValue *address,
|
||||
// const Metadata *metadata);
|
||||
FUNCTION(EnumSimpleGetEnumTag,
|
||||
Swift, swift_enumSimple_getEnumTag,
|
||||
Swift, swift_cvw_enumSimple_getEnumTag,
|
||||
C_CC, AlwaysAvailable,
|
||||
RETURNS(Int32Ty),
|
||||
ARGS(Int8PtrTy, TypeMetadataPtrTy),
|
||||
@@ -2781,11 +2781,11 @@ FUNCTION(EnumSimpleGetEnumTag,
|
||||
EFFECT(NoEffect),
|
||||
UNKNOWN_MEMEFFECTS)
|
||||
|
||||
// unsigned swift_enumSimple_destructiveInjectEnumTag(swift::OpaqueValue *address,
|
||||
// unsigned swift_cvw_enumSimple_destructiveInjectEnumTag(swift::OpaqueValue *address,
|
||||
// unsigned tag,
|
||||
// const Metadata *metadata)
|
||||
FUNCTION(EnumSimpleDestructiveInjectEnumTag,
|
||||
Swift, swift_enumSimple_destructiveInjectEnumTag,
|
||||
Swift, swift_cvw_enumSimple_destructiveInjectEnumTag,
|
||||
C_CC, AlwaysAvailable,
|
||||
RETURNS(VoidTy),
|
||||
ARGS(Int8PtrTy, Int32Ty, TypeMetadataPtrTy),
|
||||
@@ -2793,10 +2793,10 @@ FUNCTION(EnumSimpleDestructiveInjectEnumTag,
|
||||
EFFECT(NoEffect),
|
||||
UNKNOWN_MEMEFFECTS)
|
||||
|
||||
// unsigned swift_enumFn_getEnumTag(swift::OpaqueValue *address,
|
||||
// unsigned swift_cvw_enumFn_getEnumTag(swift::OpaqueValue *address,
|
||||
// const Metadata *metadata);
|
||||
FUNCTION(EnumFnGetEnumTag,
|
||||
Swift, swift_enumFn_getEnumTag,
|
||||
Swift, swift_cvw_enumFn_getEnumTag,
|
||||
C_CC, AlwaysAvailable,
|
||||
RETURNS(Int32Ty),
|
||||
ARGS(Int8PtrTy, TypeMetadataPtrTy),
|
||||
@@ -2804,10 +2804,10 @@ FUNCTION(EnumFnGetEnumTag,
|
||||
EFFECT(NoEffect),
|
||||
UNKNOWN_MEMEFFECTS)
|
||||
|
||||
// unsigned swift_multiPayloadEnumGeneric_getEnumTag(opaque* address,
|
||||
// unsigned swift_cvw_multiPayloadEnumGeneric_getEnumTag(opaque* address,
|
||||
// const Metadata *type);
|
||||
FUNCTION(MultiPayloadEnumGenericGetEnumTag,
|
||||
Swift, swift_multiPayloadEnumGeneric_getEnumTag,
|
||||
Swift, swift_cvw_multiPayloadEnumGeneric_getEnumTag,
|
||||
C_CC, AlwaysAvailable,
|
||||
RETURNS(Int32Ty),
|
||||
ARGS(Int8PtrTy, TypeMetadataPtrTy),
|
||||
@@ -2815,11 +2815,11 @@ FUNCTION(MultiPayloadEnumGenericGetEnumTag,
|
||||
EFFECT(NoEffect),
|
||||
UNKNOWN_MEMEFFECTS)
|
||||
|
||||
// void swift_multiPayloadEnumGeneric_destructiveInjectEnumTag(swift::OpaqueValue *address,
|
||||
// void swift_cvw_multiPayloadEnumGeneric_destructiveInjectEnumTag(swift::OpaqueValue *address,
|
||||
// unsigned tag,
|
||||
// const Metadata *metadata)
|
||||
FUNCTION(MultiPayloadEnumGenericDestructiveInjectEnumTag,
|
||||
Swift, swift_multiPayloadEnumGeneric_destructiveInjectEnumTag,
|
||||
Swift, swift_cvw_multiPayloadEnumGeneric_destructiveInjectEnumTag,
|
||||
C_CC, AlwaysAvailable,
|
||||
RETURNS(VoidTy),
|
||||
ARGS(Int8PtrTy, Int32Ty, TypeMetadataPtrTy),
|
||||
@@ -2827,10 +2827,10 @@ FUNCTION(MultiPayloadEnumGenericDestructiveInjectEnumTag,
|
||||
EFFECT(NoEffect),
|
||||
UNKNOWN_MEMEFFECTS)
|
||||
|
||||
// unsigned swift_singlePayloadEnumGeneric_getEnumTag(swift::OpaqueValue *address,
|
||||
// unsigned swift_cvw_singlePayloadEnumGeneric_getEnumTag(swift::OpaqueValue *address,
|
||||
// const Metadata *metadata);
|
||||
FUNCTION(SinglePayloadEnumGenericGetEnumTag,
|
||||
Swift, swift_singlePayloadEnumGeneric_getEnumTag,
|
||||
Swift, swift_cvw_singlePayloadEnumGeneric_getEnumTag,
|
||||
C_CC, AlwaysAvailable,
|
||||
RETURNS(Int32Ty),
|
||||
ARGS(Int8PtrTy, TypeMetadataPtrTy),
|
||||
@@ -2838,11 +2838,11 @@ FUNCTION(SinglePayloadEnumGenericGetEnumTag,
|
||||
EFFECT(NoEffect),
|
||||
UNKNOWN_MEMEFFECTS)
|
||||
|
||||
// void swift_singlePayloadEnumGeneric_destructiveInjectEnumTag(swift::OpaqueValue *address,
|
||||
// void swift_cvw_singlePayloadEnumGeneric_destructiveInjectEnumTag(swift::OpaqueValue *address,
|
||||
// unsigned tag,
|
||||
// const Metadata *metadata)
|
||||
FUNCTION(SinglePayloadEnumGenericDestructiveInjectEnumTag,
|
||||
Swift, swift_singlePayloadEnumGeneric_destructiveInjectEnumTag,
|
||||
Swift, swift_cvw_singlePayloadEnumGeneric_destructiveInjectEnumTag,
|
||||
C_CC, AlwaysAvailable,
|
||||
RETURNS(VoidTy),
|
||||
ARGS(Int8PtrTy, Int32Ty, TypeMetadataPtrTy),
|
||||
@@ -2850,10 +2850,10 @@ FUNCTION(SinglePayloadEnumGenericDestructiveInjectEnumTag,
|
||||
EFFECT(NoEffect),
|
||||
UNKNOWN_MEMEFFECTS)
|
||||
|
||||
// void swift_generic_instantiateLayoutString(const uint8_t* layoutStr,
|
||||
// void swift_cvw_instantiateLayoutString(const uint8_t* layoutStr,
|
||||
// Metadata* type);
|
||||
FUNCTION(GenericInstantiateLayoutString,
|
||||
Swift, swift_generic_instantiateLayoutString,
|
||||
Swift, swift_cvw_instantiateLayoutString,
|
||||
C_CC, AlwaysAvailable,
|
||||
RETURNS(VoidTy),
|
||||
ARGS(Int8PtrTy, TypeMetadataPtrTy),
|
||||
|
||||
@@ -230,7 +230,7 @@ OVERRIDE_WITNESSTABLE(getAssociatedConformanceWitnessSlow, const WitnessTable *,
|
||||
(wtable, conformingType, assocType, reqBase,
|
||||
assocConformance))
|
||||
|
||||
OVERRIDE_CVW_METADATA(allocateGenericValueMetadataWithLayoutString, ValueMetadata *,
|
||||
OVERRIDE_CVW_METADATA(cvw_allocateGenericValueMetadataWithLayoutString, ValueMetadata *,
|
||||
SWIFT_RUNTIME_EXPORT, , swift::,
|
||||
(const ValueTypeDescriptor *description,
|
||||
const void *arguments,
|
||||
@@ -238,7 +238,7 @@ OVERRIDE_CVW_METADATA(allocateGenericValueMetadataWithLayoutString, ValueMetadat
|
||||
size_t extraDataSize),
|
||||
(description, arguments, pattern, extraDataSize))
|
||||
|
||||
OVERRIDE_CVW_METADATA(initStructMetadataWithLayoutString, void, SWIFT_RUNTIME_EXPORT,
|
||||
OVERRIDE_CVW_METADATA(cvw_initStructMetadataWithLayoutString, void, SWIFT_RUNTIME_EXPORT,
|
||||
, swift::, (StructMetadata *structType,
|
||||
StructLayoutFlags layoutFlags,
|
||||
size_t numFields,
|
||||
@@ -248,101 +248,101 @@ OVERRIDE_CVW_METADATA(initStructMetadataWithLayoutString, void, SWIFT_RUNTIME_EX
|
||||
(structType, layoutFlags, numFields, fieldTypes,
|
||||
fieldTags, fieldOffsets))
|
||||
|
||||
OVERRIDE_CVW_METADATA(allocateGenericClassMetadataWithLayoutString, ClassMetadata *,
|
||||
OVERRIDE_CVW_METADATA(cvw_allocateGenericClassMetadataWithLayoutString, ClassMetadata *,
|
||||
SWIFT_RUNTIME_EXPORT, , swift::,
|
||||
(const ClassDescriptor *description,
|
||||
const void *arguments,
|
||||
const GenericClassMetadataPattern *pattern),
|
||||
(description, arguments, pattern))
|
||||
|
||||
OVERRIDE_CVW_METADATA_ENUM(initEnumMetadataSingleCaseWithLayoutString, void,
|
||||
OVERRIDE_CVW_METADATA_ENUM(cvw_initEnumMetadataSingleCaseWithLayoutString, void,
|
||||
SWIFT_RUNTIME_EXPORT, , swift::,
|
||||
(EnumMetadata *self, EnumLayoutFlags layoutFlags,
|
||||
const Metadata *payloadType),
|
||||
(self, layoutFlags, payloadType))
|
||||
|
||||
OVERRIDE_CVW_METADATA_ENUM(initEnumMetadataSinglePayloadWithLayoutString, void,
|
||||
OVERRIDE_CVW_METADATA_ENUM(cvw_initEnumMetadataSinglePayloadWithLayoutString, void,
|
||||
SWIFT_RUNTIME_EXPORT, , swift::,
|
||||
(EnumMetadata *self, EnumLayoutFlags layoutFlags,
|
||||
const Metadata *payloadType, unsigned emptyCases),
|
||||
(self, layoutFlags, payloadType, emptyCases))
|
||||
|
||||
OVERRIDE_CVW_METADATA_ENUM(initEnumMetadataMultiPayloadWithLayoutString, void,
|
||||
OVERRIDE_CVW_METADATA_ENUM(cvw_initEnumMetadataMultiPayloadWithLayoutString, void,
|
||||
SWIFT_RUNTIME_EXPORT, , swift::,
|
||||
(EnumMetadata *self, EnumLayoutFlags layoutFlags,
|
||||
unsigned numPayloads,
|
||||
const Metadata * const *payloadLayouts),
|
||||
(self, layoutFlags, numPayloads, payloadLayouts))
|
||||
|
||||
OVERRIDE_CVW(generic_destroy, void, SWIFT_RUNTIME_EXPORT,
|
||||
OVERRIDE_CVW(cvw_destroy, void, SWIFT_RUNTIME_EXPORT,
|
||||
, swift::, (swift::OpaqueValue *address,
|
||||
const Metadata *metadata),
|
||||
(address, metadata))
|
||||
|
||||
OVERRIDE_CVW(generic_assignWithCopy, swift::OpaqueValue *, SWIFT_RUNTIME_EXPORT,
|
||||
OVERRIDE_CVW(cvw_assignWithCopy, swift::OpaqueValue *, SWIFT_RUNTIME_EXPORT,
|
||||
, swift::, (swift::OpaqueValue *dest,
|
||||
swift::OpaqueValue *src,
|
||||
const Metadata *metadata),
|
||||
(dest, src, metadata))
|
||||
|
||||
OVERRIDE_CVW(generic_assignWithTake, swift::OpaqueValue *, SWIFT_RUNTIME_EXPORT,
|
||||
OVERRIDE_CVW(cvw_assignWithTake, swift::OpaqueValue *, SWIFT_RUNTIME_EXPORT,
|
||||
, swift::, (swift::OpaqueValue *dest,
|
||||
swift::OpaqueValue *src,
|
||||
const Metadata *metadata),
|
||||
(dest, src, metadata))
|
||||
|
||||
OVERRIDE_CVW(generic_initWithCopy, swift::OpaqueValue *, SWIFT_RUNTIME_EXPORT,
|
||||
OVERRIDE_CVW(cvw_initWithCopy, swift::OpaqueValue *, SWIFT_RUNTIME_EXPORT,
|
||||
, swift::, (swift::OpaqueValue *dest,
|
||||
swift::OpaqueValue *src,
|
||||
const Metadata *metadata),
|
||||
(dest, src, metadata))
|
||||
|
||||
OVERRIDE_CVW(generic_initWithTake, swift::OpaqueValue *, SWIFT_RUNTIME_EXPORT,
|
||||
OVERRIDE_CVW(cvw_initWithTake, swift::OpaqueValue *, SWIFT_RUNTIME_EXPORT,
|
||||
, swift::, (swift::OpaqueValue *dest,
|
||||
swift::OpaqueValue *src,
|
||||
const Metadata *metadata),
|
||||
(dest, src, metadata))
|
||||
|
||||
OVERRIDE_CVW(generic_initializeBufferWithCopyOfBuffer, swift::OpaqueValue *,
|
||||
OVERRIDE_CVW(cvw_initializeBufferWithCopyOfBuffer, swift::OpaqueValue *,
|
||||
SWIFT_RUNTIME_EXPORT,
|
||||
, swift::, (swift::ValueBuffer *dest,
|
||||
swift::ValueBuffer *src,
|
||||
const Metadata *metadata),
|
||||
(dest, src, metadata))
|
||||
|
||||
OVERRIDE_CVW(enumSimple_getEnumTag, unsigned, SWIFT_RUNTIME_EXPORT,
|
||||
OVERRIDE_CVW(cvw_enumSimple_getEnumTag, unsigned, SWIFT_RUNTIME_EXPORT,
|
||||
, swift::, (swift::OpaqueValue *address,
|
||||
const Metadata *metadata),
|
||||
(address, metadata))
|
||||
|
||||
OVERRIDE_CVW(enumSimple_destructiveInjectEnumTag, void, SWIFT_RUNTIME_EXPORT,
|
||||
OVERRIDE_CVW(cvw_enumSimple_destructiveInjectEnumTag, void, SWIFT_RUNTIME_EXPORT,
|
||||
, swift::, (swift::OpaqueValue *address,
|
||||
unsigned tag,
|
||||
const Metadata *metadata),
|
||||
(address, tag, metadata))
|
||||
|
||||
OVERRIDE_CVW(enumFn_getEnumTag, unsigned, SWIFT_RUNTIME_EXPORT,
|
||||
OVERRIDE_CVW(cvw_enumFn_getEnumTag, unsigned, SWIFT_RUNTIME_EXPORT,
|
||||
, swift::, (swift::OpaqueValue *address,
|
||||
const Metadata *metadata),
|
||||
(address, metadata))
|
||||
|
||||
OVERRIDE_CVW(multiPayloadEnumGeneric_getEnumTag, unsigned, SWIFT_RUNTIME_EXPORT,
|
||||
OVERRIDE_CVW(cvw_multiPayloadEnumGeneric_getEnumTag, unsigned, SWIFT_RUNTIME_EXPORT,
|
||||
, swift::, (swift::OpaqueValue *address,
|
||||
const Metadata *metadata),
|
||||
(address, metadata))
|
||||
|
||||
OVERRIDE_CVW(multiPayloadEnumGeneric_destructiveInjectEnumTag, void, SWIFT_RUNTIME_EXPORT,
|
||||
OVERRIDE_CVW(cvw_multiPayloadEnumGeneric_destructiveInjectEnumTag, void, SWIFT_RUNTIME_EXPORT,
|
||||
, swift::, (swift::OpaqueValue *address,
|
||||
unsigned tag,
|
||||
const Metadata *metadata),
|
||||
(address, tag, metadata))
|
||||
|
||||
OVERRIDE_CVW(singlePayloadEnumGeneric_getEnumTag, unsigned, SWIFT_RUNTIME_EXPORT,
|
||||
OVERRIDE_CVW(cvw_singlePayloadEnumGeneric_getEnumTag, unsigned, SWIFT_RUNTIME_EXPORT,
|
||||
, swift::, (swift::OpaqueValue *address,
|
||||
const Metadata *metadata),
|
||||
(address, metadata))
|
||||
|
||||
OVERRIDE_CVW(singlePayloadEnumGeneric_destructiveInjectEnumTag, void, SWIFT_RUNTIME_EXPORT,
|
||||
OVERRIDE_CVW(cvw_singlePayloadEnumGeneric_destructiveInjectEnumTag, void, SWIFT_RUNTIME_EXPORT,
|
||||
, swift::, (swift::OpaqueValue *address,
|
||||
unsigned tag,
|
||||
const Metadata *metadata),
|
||||
|
||||
@@ -113,12 +113,12 @@ static void array_copy_operation(OpaqueValue *dest, OpaqueValue *src,
|
||||
if (copyKind == ArrayCopy::NoAlias || copyKind == ArrayCopy::FrontToBack) {
|
||||
if (self->hasLayoutString() && destOp == ArrayDest::Init &&
|
||||
srcOp == ArraySource::Copy) {
|
||||
return swift_generic_arrayInitWithCopy(dest, src, count, stride, self);
|
||||
return swift_cvw_arrayInitWithCopy(dest, src, count, stride, self);
|
||||
}
|
||||
|
||||
if (self->hasLayoutString() && destOp == ArrayDest::Assign &&
|
||||
srcOp == ArraySource::Copy) {
|
||||
return swift_generic_arrayAssignWithCopy(dest, src, count, stride, self);
|
||||
return swift_cvw_arrayAssignWithCopy(dest, src, count, stride, self);
|
||||
}
|
||||
|
||||
auto copy = get_witness_function<destOp, srcOp>(wtable);
|
||||
@@ -214,7 +214,7 @@ void swift_arrayDestroy(OpaqueValue *begin, size_t count, const Metadata *self)
|
||||
|
||||
auto stride = wtable->getStride();
|
||||
if (self->hasLayoutString()) {
|
||||
return swift_generic_arrayDestroy(begin, count, stride, self);
|
||||
return swift_cvw_arrayDestroy(begin, count, stride, self);
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < count; ++i) {
|
||||
|
||||
@@ -899,8 +899,8 @@ static void handleRefCountsDestroy(const Metadata *metadata,
|
||||
}
|
||||
}
|
||||
|
||||
static void swift_generic_destroyImpl(swift::OpaqueValue *address,
|
||||
const Metadata *metadata) {
|
||||
static void swift_cvw_destroyImpl(swift::OpaqueValue *address,
|
||||
const Metadata *metadata) {
|
||||
const uint8_t *layoutStr = metadata->getLayoutString();
|
||||
LayoutStringReader1 reader{layoutStr + layoutStringHeaderSize};
|
||||
uintptr_t addrOffset = 0;
|
||||
@@ -914,7 +914,8 @@ static void swift_generic_destroyImpl(swift::OpaqueValue *address,
|
||||
#endif
|
||||
}
|
||||
|
||||
void swift::swift_generic_arrayDestroy(swift::OpaqueValue *address, size_t count, size_t stride, const Metadata *metadata) {
|
||||
void swift::swift_cvw_arrayDestroy(swift::OpaqueValue *address, size_t count,
|
||||
size_t stride, const Metadata *metadata) {
|
||||
const uint8_t *layoutStr = metadata->getLayoutString();
|
||||
uint8_t *addr = (uint8_t *)address;
|
||||
for (size_t i = 0; i < count; i++) {
|
||||
@@ -1160,9 +1161,8 @@ static void handleRefCountsInitWithCopy(const Metadata *metadata,
|
||||
}
|
||||
|
||||
static swift::OpaqueValue *
|
||||
swift_generic_initWithCopyImpl(swift::OpaqueValue *_dest,
|
||||
swift::OpaqueValue *_src,
|
||||
const Metadata *metadata) {
|
||||
swift_cvw_initWithCopyImpl(swift::OpaqueValue *_dest, swift::OpaqueValue *_src,
|
||||
const Metadata *metadata) {
|
||||
const uint8_t *layoutStr = metadata->getLayoutString();
|
||||
LayoutStringReader1 reader{layoutStr + layoutStringHeaderSize};
|
||||
uintptr_t addrOffset = 0;
|
||||
@@ -1181,10 +1181,10 @@ swift_generic_initWithCopyImpl(swift::OpaqueValue *_dest,
|
||||
return _dest;
|
||||
}
|
||||
|
||||
void swift::swift_generic_arrayInitWithCopy(swift::OpaqueValue *_dest,
|
||||
swift::OpaqueValue *_src,
|
||||
size_t count, size_t stride,
|
||||
const Metadata *metadata) {
|
||||
void swift::swift_cvw_arrayInitWithCopy(swift::OpaqueValue *_dest,
|
||||
swift::OpaqueValue *_src, size_t count,
|
||||
size_t stride,
|
||||
const Metadata *metadata) {
|
||||
const uint8_t *layoutStr = metadata->getLayoutString();
|
||||
uint8_t *dest = (uint8_t *)_dest;
|
||||
uint8_t *src = (uint8_t *)_src;
|
||||
@@ -1319,9 +1319,8 @@ static void handleRefCountsInitWithTake(const Metadata *metadata,
|
||||
}
|
||||
|
||||
static swift::OpaqueValue *
|
||||
swift_generic_initWithTakeImpl(swift::OpaqueValue *_dest,
|
||||
swift::OpaqueValue *_src,
|
||||
const Metadata *metadata) {
|
||||
swift_cvw_initWithTakeImpl(swift::OpaqueValue *_dest, swift::OpaqueValue *_src,
|
||||
const Metadata *metadata) {
|
||||
if (SWIFT_LIKELY(metadata->getValueWitnesses()->isBitwiseTakable())) {
|
||||
size_t size = metadata->vw_size();
|
||||
memcpy(_dest, _src, size);
|
||||
@@ -2072,9 +2071,9 @@ static void multiPayloadEnumFNAssignWithCopy(const Metadata *metadata,
|
||||
}
|
||||
|
||||
static swift::OpaqueValue *
|
||||
swift_generic_assignWithCopyImpl(swift::OpaqueValue *_dest,
|
||||
swift::OpaqueValue *_src,
|
||||
const Metadata *metadata) {
|
||||
swift_cvw_assignWithCopyImpl(swift::OpaqueValue *_dest,
|
||||
swift::OpaqueValue *_src,
|
||||
const Metadata *metadata) {
|
||||
uint8_t *dest = (uint8_t *)_dest;
|
||||
uint8_t *src = (uint8_t *)_src;
|
||||
const uint8_t *layoutStr = metadata->getLayoutString();
|
||||
@@ -2093,10 +2092,10 @@ swift_generic_assignWithCopyImpl(swift::OpaqueValue *_dest,
|
||||
return _dest;
|
||||
}
|
||||
|
||||
void swift::swift_generic_arrayAssignWithCopy(swift::OpaqueValue *_dest,
|
||||
swift::OpaqueValue *_src,
|
||||
size_t count, size_t stride,
|
||||
const Metadata *metadata) {
|
||||
void swift::swift_cvw_arrayAssignWithCopy(swift::OpaqueValue *_dest,
|
||||
swift::OpaqueValue *_src,
|
||||
size_t count, size_t stride,
|
||||
const Metadata *metadata) {
|
||||
uint8_t *dest = (uint8_t *)_dest;
|
||||
uint8_t *src = (uint8_t *)_src;
|
||||
const uint8_t *layoutStr = metadata->getLayoutString();
|
||||
@@ -2114,19 +2113,19 @@ void swift::swift_generic_arrayAssignWithCopy(swift::OpaqueValue *_dest,
|
||||
}
|
||||
|
||||
static swift::OpaqueValue *
|
||||
swift_generic_assignWithTakeImpl(swift::OpaqueValue *dest,
|
||||
swift::OpaqueValue *src,
|
||||
const Metadata *metadata) {
|
||||
swift_generic_destroy(dest, metadata);
|
||||
return swift_generic_initWithTake(dest, src, metadata);
|
||||
swift_cvw_assignWithTakeImpl(swift::OpaqueValue *dest, swift::OpaqueValue *src,
|
||||
const Metadata *metadata) {
|
||||
swift_cvw_destroy(dest, metadata);
|
||||
return swift_cvw_initWithTake(dest, src, metadata);
|
||||
}
|
||||
|
||||
extern "C" unsigned swift_singletonEnum_getEnumTag(swift::OpaqueValue *address,
|
||||
const Metadata *metadata) {
|
||||
extern "C" unsigned
|
||||
swift_cvw_singletonEnum_getEnumTag(swift::OpaqueValue *address,
|
||||
const Metadata *metadata) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
extern "C" void swift_singletonEnum_destructiveInjectEnumTag(
|
||||
extern "C" void swift_cvw_singletonEnum_destructiveInjectEnumTag(
|
||||
swift::OpaqueValue *address, unsigned tag, const Metadata *metadata) {
|
||||
return;
|
||||
}
|
||||
@@ -2159,8 +2158,8 @@ static inline T handleSinglePayloadEnumSimpleTag(
|
||||
xiTagBytesOffset, payloadSize, numExtraTagBytes);
|
||||
}
|
||||
|
||||
static unsigned swift_enumSimple_getEnumTagImpl(swift::OpaqueValue *address,
|
||||
const Metadata *metadata) {
|
||||
static unsigned swift_cvw_enumSimple_getEnumTagImpl(swift::OpaqueValue *address,
|
||||
const Metadata *metadata) {
|
||||
auto addr = reinterpret_cast<uint8_t *>(address);
|
||||
LayoutStringReader reader{metadata->getLayoutString(),
|
||||
layoutStringHeaderSize + sizeof(uint64_t)};
|
||||
@@ -2202,7 +2201,7 @@ static unsigned swift_enumSimple_getEnumTagImpl(swift::OpaqueValue *address,
|
||||
reader, addr, extraTagBytesHandler, xihandler);
|
||||
}
|
||||
|
||||
static void swift_enumSimple_destructiveInjectEnumTagImpl(
|
||||
static void swift_cvw_enumSimple_destructiveInjectEnumTagImpl(
|
||||
swift::OpaqueValue *address, unsigned tag, const Metadata *metadata) {
|
||||
auto addr = reinterpret_cast<uint8_t *>(address);
|
||||
LayoutStringReader reader{metadata->getLayoutString(),
|
||||
@@ -2260,8 +2259,8 @@ static void swift_enumSimple_destructiveInjectEnumTagImpl(
|
||||
xihandler);
|
||||
}
|
||||
|
||||
static unsigned swift_enumFn_getEnumTagImpl(swift::OpaqueValue *address,
|
||||
const Metadata *metadata) {
|
||||
static unsigned swift_cvw_enumFn_getEnumTagImpl(swift::OpaqueValue *address,
|
||||
const Metadata *metadata) {
|
||||
auto addr = reinterpret_cast<const uint8_t *>(address);
|
||||
LayoutStringReader reader{metadata->getLayoutString(),
|
||||
layoutStringHeaderSize + sizeof(uint64_t)};
|
||||
@@ -2271,8 +2270,8 @@ static unsigned swift_enumFn_getEnumTagImpl(swift::OpaqueValue *address,
|
||||
}
|
||||
|
||||
static unsigned
|
||||
swift_multiPayloadEnumGeneric_getEnumTagImpl(swift::OpaqueValue *address,
|
||||
const Metadata *metadata) {
|
||||
swift_cvw_multiPayloadEnumGeneric_getEnumTagImpl(swift::OpaqueValue *address,
|
||||
const Metadata *metadata) {
|
||||
auto addr = reinterpret_cast<const uint8_t *>(address);
|
||||
LayoutStringReader1 reader{metadata->getLayoutString() +
|
||||
layoutStringHeaderSize + sizeof(uint64_t)};
|
||||
@@ -2299,7 +2298,7 @@ swift_multiPayloadEnumGeneric_getEnumTagImpl(swift::OpaqueValue *address,
|
||||
}
|
||||
}
|
||||
|
||||
static void swift_multiPayloadEnumGeneric_destructiveInjectEnumTagImpl(
|
||||
static void swift_cvw_multiPayloadEnumGeneric_destructiveInjectEnumTagImpl(
|
||||
swift::OpaqueValue *address, unsigned tag, const Metadata *metadata) {
|
||||
auto addr = reinterpret_cast<uint8_t *>(address);
|
||||
LayoutStringReader reader{metadata->getLayoutString(),
|
||||
@@ -2363,8 +2362,8 @@ static inline T handleSinglePayloadEnumGenericTag(
|
||||
}
|
||||
|
||||
static unsigned
|
||||
swift_singlePayloadEnumGeneric_getEnumTagImpl(swift::OpaqueValue *address,
|
||||
const Metadata *metadata) {
|
||||
swift_cvw_singlePayloadEnumGeneric_getEnumTagImpl(swift::OpaqueValue *address,
|
||||
const Metadata *metadata) {
|
||||
auto addr = reinterpret_cast<uint8_t *>(address);
|
||||
LayoutStringReader reader{metadata->getLayoutString(),
|
||||
layoutStringHeaderSize + sizeof(uint64_t)};
|
||||
@@ -2404,7 +2403,7 @@ swift_singlePayloadEnumGeneric_getEnumTagImpl(swift::OpaqueValue *address,
|
||||
reader, addr, extraTagBytesHandler, xihandler);
|
||||
}
|
||||
|
||||
static void swift_singlePayloadEnumGeneric_destructiveInjectEnumTagImpl(
|
||||
static void swift_cvw_singlePayloadEnumGeneric_destructiveInjectEnumTagImpl(
|
||||
swift::OpaqueValue *address, unsigned tag, const Metadata *metadata) {
|
||||
auto addr = reinterpret_cast<uint8_t *>(address);
|
||||
LayoutStringReader reader{metadata->getLayoutString(),
|
||||
@@ -2463,12 +2462,12 @@ static void swift_singlePayloadEnumGeneric_destructiveInjectEnumTagImpl(
|
||||
}
|
||||
|
||||
static swift::OpaqueValue *
|
||||
swift_generic_initializeBufferWithCopyOfBufferImpl(swift::ValueBuffer *dest,
|
||||
swift::ValueBuffer *src,
|
||||
const Metadata *metadata) {
|
||||
swift_cvw_initializeBufferWithCopyOfBufferImpl(swift::ValueBuffer *dest,
|
||||
swift::ValueBuffer *src,
|
||||
const Metadata *metadata) {
|
||||
if (metadata->getValueWitnesses()->isValueInline()) {
|
||||
return swift_generic_initWithCopy((swift::OpaqueValue *)dest,
|
||||
(swift::OpaqueValue *)src, metadata);
|
||||
return swift_cvw_initWithCopy((swift::OpaqueValue *)dest,
|
||||
(swift::OpaqueValue *)src, metadata);
|
||||
} else {
|
||||
memcpy(dest, src, sizeof(swift::HeapObject *));
|
||||
swift_retain(*(swift::HeapObject **)src);
|
||||
@@ -2476,10 +2475,10 @@ swift_generic_initializeBufferWithCopyOfBufferImpl(swift::ValueBuffer *dest,
|
||||
}
|
||||
}
|
||||
|
||||
void swift::swift_resolve_resilientAccessors(uint8_t *layoutStr,
|
||||
size_t layoutStrOffset,
|
||||
const uint8_t *fieldLayoutStr,
|
||||
const Metadata *fieldType) {
|
||||
void swift::swift_cvw_resolve_resilientAccessors(uint8_t *layoutStr,
|
||||
size_t layoutStrOffset,
|
||||
const uint8_t *fieldLayoutStr,
|
||||
const Metadata *fieldType) {
|
||||
LayoutStringWriter writer{layoutStr, layoutStrOffset};
|
||||
LayoutStringReader reader{fieldLayoutStr, 0};
|
||||
while (true) {
|
||||
@@ -2558,9 +2557,9 @@ void swift::swift_resolve_resilientAccessors(uint8_t *layoutStr,
|
||||
size_t caseOffset = reader.readBytes<size_t>();
|
||||
const uint8_t *caseLayoutString = fieldCasesBeginOffset +
|
||||
caseOffset;
|
||||
swift_resolve_resilientAccessors(layoutStr,
|
||||
casesBeginOffset + caseOffset,
|
||||
caseLayoutString, fieldType);
|
||||
swift_cvw_resolve_resilientAccessors(layoutStr,
|
||||
casesBeginOffset + caseOffset,
|
||||
caseLayoutString, fieldType);
|
||||
}
|
||||
reader.skip(refCountBytes);
|
||||
break;
|
||||
@@ -2590,11 +2589,102 @@ void swift::swift_resolve_resilientAccessors(uint8_t *layoutStr,
|
||||
}
|
||||
}
|
||||
|
||||
extern "C"
|
||||
void swift_generic_instantiateLayoutString(const uint8_t* layoutStr,
|
||||
Metadata* type) {
|
||||
extern "C" void swift_cvw_instantiateLayoutString(const uint8_t *layoutStr,
|
||||
Metadata *type) {
|
||||
type->setLayoutString(layoutStr);
|
||||
}
|
||||
|
||||
// Forwarders for compatibility reasons
|
||||
|
||||
extern "C" void swift_generic_destroy(swift::OpaqueValue *address,
|
||||
const Metadata *metadata) {
|
||||
swift_cvw_destroy(address, metadata);
|
||||
}
|
||||
|
||||
extern "C" swift::OpaqueValue *
|
||||
swift_generic_assignWithCopy(swift::OpaqueValue *dest, swift::OpaqueValue *src,
|
||||
const Metadata *metadata) {
|
||||
return swift_cvw_assignWithCopy(dest, src, metadata);
|
||||
}
|
||||
|
||||
extern "C" swift::OpaqueValue *
|
||||
swift_generic_assignWithTake(swift::OpaqueValue *dest, swift::OpaqueValue *src,
|
||||
const Metadata *metadata) {
|
||||
return swift_cvw_assignWithTake(dest, src, metadata);
|
||||
}
|
||||
|
||||
extern "C" swift::OpaqueValue *
|
||||
swift_generic_initWithCopy(swift::OpaqueValue *dest, swift::OpaqueValue *src,
|
||||
const Metadata *metadata) {
|
||||
return swift_cvw_initWithCopy(dest, src, metadata);
|
||||
}
|
||||
|
||||
extern "C" swift::OpaqueValue *
|
||||
swift_generic_initWithTake(swift::OpaqueValue *dest, swift::OpaqueValue *src,
|
||||
const Metadata *metadata) {
|
||||
return swift_cvw_initWithTake(dest, src, metadata);
|
||||
}
|
||||
|
||||
extern "C" swift::OpaqueValue *
|
||||
swift_generic_initializeBufferWithCopyOfBuffer(swift::ValueBuffer *dest,
|
||||
swift::ValueBuffer *src,
|
||||
const Metadata *metadata) {
|
||||
return swift_cvw_initializeBufferWithCopyOfBuffer(dest, src, metadata);
|
||||
}
|
||||
|
||||
extern "C" unsigned swift_enumSimple_getEnumTag(swift::OpaqueValue *address,
|
||||
const Metadata *metadata) {
|
||||
return swift_cvw_enumSimple_getEnumTag(address, metadata);
|
||||
}
|
||||
|
||||
extern "C" void swift_enumSimple_destructiveInjectEnumTag(
|
||||
swift::OpaqueValue *address, unsigned tag, const Metadata *metadata) {
|
||||
swift_cvw_enumSimple_destructiveInjectEnumTag(address, tag, metadata);
|
||||
}
|
||||
|
||||
extern "C" unsigned swift_enumFn_getEnumTag(swift::OpaqueValue *address,
|
||||
const Metadata *metadata) {
|
||||
return swift_cvw_enumFn_getEnumTag(address, metadata);
|
||||
}
|
||||
|
||||
extern "C" unsigned
|
||||
swift_multiPayloadEnumGeneric_getEnumTag(swift::OpaqueValue *address,
|
||||
const Metadata *metadata) {
|
||||
return swift_cvw_multiPayloadEnumGeneric_getEnumTag(address, metadata);
|
||||
}
|
||||
|
||||
extern "C" void swift_multiPayloadEnumGeneric_destructiveInjectEnumTag(
|
||||
swift::OpaqueValue *address, unsigned tag, const Metadata *metadata) {
|
||||
swift_cvw_multiPayloadEnumGeneric_destructiveInjectEnumTag(address, tag,
|
||||
metadata);
|
||||
}
|
||||
|
||||
extern "C" unsigned
|
||||
swift_singlePayloadEnumGeneric_getEnumTag(swift::OpaqueValue *address,
|
||||
const Metadata *metadata) {
|
||||
return swift_cvw_singlePayloadEnumGeneric_getEnumTagImpl(address, metadata);
|
||||
}
|
||||
|
||||
extern "C" void swift_singlePayloadEnumGeneric_destructiveInjectEnumTag(
|
||||
swift::OpaqueValue *address, unsigned tag, const Metadata *metadata) {
|
||||
swift_cvw_singlePayloadEnumGeneric_destructiveInjectEnumTag(address, tag,
|
||||
metadata);
|
||||
}
|
||||
|
||||
extern "C" unsigned swift_singletonEnum_getEnumTag(swift::OpaqueValue *address,
|
||||
const Metadata *metadata) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
extern "C" void swift_singletonEnum_destructiveInjectEnumTag(
|
||||
swift::OpaqueValue *address, unsigned tag, const Metadata *metadata) {
|
||||
return;
|
||||
}
|
||||
|
||||
extern "C" void swift_generic_instantiateLayoutString(const uint8_t *layoutStr,
|
||||
Metadata *type) {
|
||||
swift_cvw_instantiateLayoutString(layoutStr, type);
|
||||
}
|
||||
|
||||
#define OVERRIDE_CVW COMPATIBILITY_OVERRIDE
|
||||
#include "../CompatibilityOverride/CompatibilityOverrideIncludePath.h"
|
||||
|
||||
@@ -172,6 +172,81 @@ struct LayoutStringWriter {
|
||||
inline void skip(size_t n) { offset += n; }
|
||||
};
|
||||
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
void swift_cvw_destroy(swift::OpaqueValue *address, const Metadata *metadata);
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
swift::OpaqueValue *swift_cvw_assignWithCopy(swift::OpaqueValue *dest,
|
||||
swift::OpaqueValue *src,
|
||||
const Metadata *metadata);
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
swift::OpaqueValue *swift_cvw_assignWithTake(swift::OpaqueValue *dest,
|
||||
swift::OpaqueValue *src,
|
||||
const Metadata *metadata);
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
swift::OpaqueValue *swift_cvw_initWithCopy(swift::OpaqueValue *dest,
|
||||
swift::OpaqueValue *src,
|
||||
const Metadata *metadata);
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
swift::OpaqueValue *swift_cvw_initWithTake(swift::OpaqueValue *dest,
|
||||
swift::OpaqueValue *src,
|
||||
const Metadata *metadata);
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
swift::OpaqueValue *
|
||||
swift_cvw_initializeBufferWithCopyOfBuffer(swift::ValueBuffer *dest,
|
||||
swift::ValueBuffer *src,
|
||||
const Metadata *metadata);
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
unsigned swift_cvw_singletonEnum_getEnumTag(swift::OpaqueValue *address,
|
||||
const Metadata *metadata);
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
void swift_cvw_singletonEnum_destructiveInjectEnumTag(
|
||||
swift::OpaqueValue *address, unsigned tag, const Metadata *metadata);
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
unsigned swift_cvw_enumSimple_getEnumTag(swift::OpaqueValue *address,
|
||||
const Metadata *metadata);
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
void swift_cvw_enumSimple_destructiveInjectEnumTag(swift::OpaqueValue *address,
|
||||
unsigned tag,
|
||||
const Metadata *metadata);
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
unsigned swift_cvw_enumFn_getEnumTag(swift::OpaqueValue *address,
|
||||
const Metadata *metadata);
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
unsigned
|
||||
swift_cvw_multiPayloadEnumGeneric_getEnumTag(swift::OpaqueValue *address,
|
||||
const Metadata *metadata);
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
void swift_cvw_multiPayloadEnumGeneric_destructiveInjectEnumTag(
|
||||
swift::OpaqueValue *address, unsigned tag, const Metadata *metadata);
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
unsigned
|
||||
swift_cvw_singlePayloadEnumGeneric_getEnumTag(swift::OpaqueValue *address,
|
||||
const Metadata *metadata);
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
void swift_cvw_singlePayloadEnumGeneric_destructiveInjectEnumTag(
|
||||
swift::OpaqueValue *address, unsigned tag, const Metadata *metadata);
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
void swift_cvw_instantiateLayoutString(const uint8_t *layoutStr,
|
||||
Metadata *type);
|
||||
|
||||
void swift_cvw_resolve_resilientAccessors(uint8_t *layoutStr,
|
||||
size_t layoutStrOffset,
|
||||
const uint8_t *fieldLayoutStr,
|
||||
const Metadata *fieldType);
|
||||
|
||||
void swift_cvw_arrayDestroy(swift::OpaqueValue *addr, size_t count,
|
||||
size_t stride, const Metadata *metadata);
|
||||
|
||||
void swift_cvw_arrayInitWithCopy(swift::OpaqueValue *dest,
|
||||
swift::OpaqueValue *src, size_t count,
|
||||
size_t stride, const Metadata *metadata);
|
||||
|
||||
extern "C" void swift_cvw_arrayAssignWithCopy(swift::OpaqueValue *dest,
|
||||
swift::OpaqueValue *src,
|
||||
size_t count, size_t stride,
|
||||
const Metadata *metadata);
|
||||
|
||||
// For backwards compatibility
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
void swift_generic_destroy(swift::OpaqueValue *address,
|
||||
const Metadata *metadata);
|
||||
@@ -226,29 +301,7 @@ SWIFT_RUNTIME_EXPORT
|
||||
void swift_singlePayloadEnumGeneric_destructiveInjectEnumTag(
|
||||
swift::OpaqueValue *address, unsigned tag, const Metadata *metadata);
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
void swift_generic_instantiateLayoutString(const uint8_t *layoutStr,
|
||||
Metadata *type);
|
||||
|
||||
void swift_resolve_resilientAccessors(uint8_t *layoutStr,
|
||||
size_t layoutStrOffset,
|
||||
const uint8_t *fieldLayoutStr,
|
||||
const Metadata *fieldType);
|
||||
|
||||
void swift_generic_arrayDestroy(swift::OpaqueValue *addr,
|
||||
size_t count,
|
||||
size_t stride,
|
||||
const Metadata *metadata);
|
||||
|
||||
void swift_generic_arrayInitWithCopy(swift::OpaqueValue *dest,
|
||||
swift::OpaqueValue *src,
|
||||
size_t count,
|
||||
size_t stride,
|
||||
const Metadata *metadata);
|
||||
|
||||
extern "C" void swift_generic_arrayAssignWithCopy(swift::OpaqueValue *dest,
|
||||
swift::OpaqueValue *src,
|
||||
size_t count, size_t stride,
|
||||
const Metadata *metadata);
|
||||
void swift_generic_instantiateLayoutString(const uint8_t *layoutStr, Metadata *type);
|
||||
|
||||
constexpr size_t layoutStringHeaderSize = sizeof(uint64_t) + sizeof(size_t);
|
||||
|
||||
|
||||
@@ -67,7 +67,7 @@ swift::swift_initEnumMetadataSingleCase(EnumMetadata *self,
|
||||
vwtable->publishLayout(layout);
|
||||
}
|
||||
|
||||
static void swift_initEnumMetadataSingleCaseWithLayoutStringImpl(
|
||||
static void swift_cvw_initEnumMetadataSingleCaseWithLayoutStringImpl(
|
||||
EnumMetadata *self, EnumLayoutFlags layoutFlags,
|
||||
const Metadata *payloadType) {
|
||||
assert(self->hasLayoutString());
|
||||
@@ -108,12 +108,6 @@ static void swift_initEnumMetadataSingleCaseWithLayoutStringImpl(
|
||||
writer.writeBytes(((uint64_t)flags) &
|
||||
~((uint64_t)LayoutStringFlags::HasRelativePointers));
|
||||
|
||||
vwtable->destroy = swift_generic_destroy;
|
||||
vwtable->initializeWithCopy = swift_generic_initWithCopy;
|
||||
vwtable->initializeWithTake = swift_generic_initWithTake;
|
||||
vwtable->assignWithCopy = swift_generic_assignWithCopy;
|
||||
vwtable->assignWithTake = swift_generic_assignWithTake;
|
||||
|
||||
installCommonValueWitnesses(layout, vwtable);
|
||||
|
||||
self->setLayoutString(layoutStr);
|
||||
@@ -121,6 +115,13 @@ static void swift_initEnumMetadataSingleCaseWithLayoutStringImpl(
|
||||
vwtable->publishLayout(layout);
|
||||
}
|
||||
|
||||
void swift::swift_initEnumMetadataSingleCaseWithLayoutString(
|
||||
EnumMetadata *self, EnumLayoutFlags layoutFlags,
|
||||
const Metadata *payloadType) {
|
||||
swift_cvw_initEnumMetadataSingleCaseWithLayoutString(self, layoutFlags,
|
||||
payloadType);
|
||||
}
|
||||
|
||||
void
|
||||
swift::swift_initEnumMetadataSinglePayload(EnumMetadata *self,
|
||||
EnumLayoutFlags layoutFlags,
|
||||
@@ -220,7 +221,7 @@ XIElement findXIElement(const Metadata *type) {
|
||||
}
|
||||
} // namespace
|
||||
|
||||
static void swift_initEnumMetadataSinglePayloadWithLayoutStringImpl(
|
||||
static void swift_cvw_initEnumMetadataSinglePayloadWithLayoutStringImpl(
|
||||
EnumMetadata *self, EnumLayoutFlags layoutFlags,
|
||||
const Metadata *payloadType, unsigned emptyCases) {
|
||||
assert(self->hasLayoutString());
|
||||
@@ -319,11 +320,6 @@ static void swift_initEnumMetadataSinglePayloadWithLayoutStringImpl(
|
||||
~((uint64_t)LayoutStringFlags::HasRelativePointers));
|
||||
|
||||
self->setLayoutString(layoutStr);
|
||||
vwtable->destroy = swift_generic_destroy;
|
||||
vwtable->initializeWithCopy = swift_generic_initWithCopy;
|
||||
vwtable->initializeWithTake = swift_generic_initWithTake;
|
||||
vwtable->assignWithCopy = swift_generic_assignWithCopy;
|
||||
vwtable->assignWithTake = swift_generic_assignWithTake;
|
||||
|
||||
// Substitute in better common value witnesses if we have them.
|
||||
// If the payload type is a single-refcounted pointer, and the enum has
|
||||
@@ -354,6 +350,13 @@ static void swift_initEnumMetadataSinglePayloadWithLayoutStringImpl(
|
||||
vwtable->publishLayout(layout);
|
||||
}
|
||||
|
||||
void swift::swift_initEnumMetadataSinglePayloadWithLayoutString(
|
||||
EnumMetadata *self, EnumLayoutFlags layoutFlags,
|
||||
const Metadata *payloadType, unsigned emptyCases) {
|
||||
return swift_cvw_initEnumMetadataSinglePayloadWithLayoutString(
|
||||
self, layoutFlags, payloadType, emptyCases);
|
||||
}
|
||||
|
||||
unsigned
|
||||
swift::swift_getEnumTagSinglePayloadGeneric(const OpaqueValue *value,
|
||||
unsigned emptyCases,
|
||||
@@ -439,7 +442,7 @@ swift::swift_initEnumMetadataMultiPayload(EnumMetadata *enumType,
|
||||
vwtable->publishLayout(layout);
|
||||
}
|
||||
|
||||
static void swift_initEnumMetadataMultiPayloadWithLayoutStringImpl(
|
||||
static void swift_cvw_initEnumMetadataMultiPayloadWithLayoutStringImpl(
|
||||
EnumMetadata *enumType, EnumLayoutFlags layoutFlags, unsigned numPayloads,
|
||||
const Metadata *const *payloadLayouts) {
|
||||
assert(enumType->hasLayoutString());
|
||||
@@ -545,12 +548,6 @@ static void swift_initEnumMetadataMultiPayloadWithLayoutStringImpl(
|
||||
~((uint64_t)LayoutStringFlags::HasRelativePointers));
|
||||
|
||||
enumType->setLayoutString(layoutStr);
|
||||
|
||||
vwtable->destroy = swift_generic_destroy;
|
||||
vwtable->initializeWithCopy = swift_generic_initWithCopy;
|
||||
vwtable->initializeWithTake = swift_generic_initWithTake;
|
||||
vwtable->assignWithCopy = swift_generic_assignWithCopy;
|
||||
vwtable->assignWithTake = swift_generic_assignWithTake;
|
||||
}
|
||||
|
||||
// Set up the layout info in the vwtable.
|
||||
@@ -578,6 +575,13 @@ static void swift_initEnumMetadataMultiPayloadWithLayoutStringImpl(
|
||||
vwtable->publishLayout(layout);
|
||||
}
|
||||
|
||||
void swift::swift_initEnumMetadataMultiPayloadWithLayoutString(
|
||||
EnumMetadata *enumType, EnumLayoutFlags layoutFlags, unsigned numPayloads,
|
||||
const Metadata *const *payloadLayouts) {
|
||||
swift_cvw_initEnumMetadataMultiPayloadWithLayoutString(
|
||||
enumType, layoutFlags, numPayloads, payloadLayouts);
|
||||
}
|
||||
|
||||
namespace {
|
||||
struct MultiPayloadLayout {
|
||||
size_t payloadSize;
|
||||
|
||||
@@ -756,7 +756,8 @@ swift::swift_allocateGenericClassMetadata(const ClassDescriptor *description,
|
||||
return metadata;
|
||||
}
|
||||
|
||||
static ClassMetadata *swift_allocateGenericClassMetadataWithLayoutStringImpl(
|
||||
static ClassMetadata *
|
||||
swift_cvw_allocateGenericClassMetadataWithLayoutStringImpl(
|
||||
const ClassDescriptor *description, const void *arguments,
|
||||
const GenericClassMetadataPattern *pattern) {
|
||||
return swift::swift_allocateGenericClassMetadata(description,
|
||||
@@ -764,6 +765,13 @@ static ClassMetadata *swift_allocateGenericClassMetadataWithLayoutStringImpl(
|
||||
pattern);
|
||||
}
|
||||
|
||||
ClassMetadata *swift::swift_allocateGenericClassMetadataWithLayoutString(
|
||||
const ClassDescriptor *description, const void *arguments,
|
||||
const GenericClassMetadataPattern *pattern) {
|
||||
return swift_cvw_allocateGenericClassMetadataWithLayoutString(
|
||||
description, arguments, pattern);
|
||||
}
|
||||
|
||||
static void
|
||||
initializeValueMetadataFromPattern(ValueMetadata *metadata,
|
||||
const ValueTypeDescriptor *description,
|
||||
@@ -835,7 +843,8 @@ swift::swift_allocateGenericValueMetadata(const ValueTypeDescriptor *description
|
||||
return metadata;
|
||||
}
|
||||
|
||||
static ValueMetadata *swift_allocateGenericValueMetadataWithLayoutStringImpl(
|
||||
static ValueMetadata *
|
||||
swift_cvw_allocateGenericValueMetadataWithLayoutStringImpl(
|
||||
const ValueTypeDescriptor *description, const void *arguments,
|
||||
const GenericValueMetadataPattern *pattern, size_t extraDataSize) {
|
||||
return swift::swift_allocateGenericValueMetadata(description,
|
||||
@@ -844,6 +853,13 @@ static ValueMetadata *swift_allocateGenericValueMetadataWithLayoutStringImpl(
|
||||
extraDataSize);
|
||||
}
|
||||
|
||||
ValueMetadata *swift::swift_allocateGenericValueMetadataWithLayoutString(
|
||||
const ValueTypeDescriptor *description, const void *arguments,
|
||||
const GenericValueMetadataPattern *pattern, size_t extraDataSize) {
|
||||
return swift_cvw_allocateGenericValueMetadataWithLayoutString(
|
||||
description, arguments, pattern, extraDataSize);
|
||||
}
|
||||
|
||||
// Look into the canonical prespecialized metadata attached to the type
|
||||
// descriptor and add them to the metadata cache.
|
||||
static void
|
||||
@@ -3076,7 +3092,7 @@ void swift::swift_initStructMetadata(StructMetadata *structType,
|
||||
vwtable->publishLayout(layout);
|
||||
}
|
||||
|
||||
static void swift_initStructMetadataWithLayoutStringImpl(
|
||||
static void swift_cvw_initStructMetadataWithLayoutStringImpl(
|
||||
StructMetadata *structType, StructLayoutFlags layoutFlags, size_t numFields,
|
||||
const uint8_t *const *fieldTypes, const uint8_t *fieldTags,
|
||||
uint32_t *fieldOffsets) {
|
||||
@@ -3186,11 +3202,6 @@ static void swift_initStructMetadataWithLayoutStringImpl(
|
||||
structType->setLayoutString(layoutStr);
|
||||
|
||||
auto *vwtable = getMutableVWTableForInit(structType, layoutFlags);
|
||||
vwtable->destroy = swift_generic_destroy;
|
||||
vwtable->initializeWithCopy = swift_generic_initWithCopy;
|
||||
vwtable->initializeWithTake = swift_generic_initWithTake;
|
||||
vwtable->assignWithCopy = swift_generic_assignWithCopy;
|
||||
vwtable->assignWithTake = swift_generic_assignWithTake;
|
||||
|
||||
layout.extraInhabitantCount = extraInhabitantCount;
|
||||
|
||||
@@ -3200,6 +3211,14 @@ static void swift_initStructMetadataWithLayoutStringImpl(
|
||||
vwtable->publishLayout(layout);
|
||||
}
|
||||
|
||||
void swift::swift_initStructMetadataWithLayoutString(
|
||||
StructMetadata *structType, StructLayoutFlags layoutFlags, size_t numFields,
|
||||
const uint8_t *const *fieldTypes, const uint8_t *fieldTags,
|
||||
uint32_t *fieldOffsets) {
|
||||
swift_cvw_initStructMetadataWithLayoutString(
|
||||
structType, layoutFlags, numFields, fieldTypes, fieldTags, fieldOffsets);
|
||||
}
|
||||
|
||||
size_t swift::_swift_refCountBytesForMetatype(const Metadata *type) {
|
||||
auto *vwt = type->getValueWitnesses();
|
||||
if (type->vw_size() == 0 || vwt->isPOD()) {
|
||||
@@ -3297,8 +3316,9 @@ void swift::_swift_addRefCountStringForMetatype(LayoutStringWriter &writer,
|
||||
reader.layoutStr + layoutStringHeaderSize, fieldRefCountBytes);
|
||||
|
||||
if (fieldFlags & LayoutStringFlags::HasRelativePointers) {
|
||||
swift_resolve_resilientAccessors(writer.layoutStr, writer.offset,
|
||||
reader.layoutStr + layoutStringHeaderSize, fieldType);
|
||||
swift_cvw_resolve_resilientAccessors(
|
||||
writer.layoutStr, writer.offset,
|
||||
reader.layoutStr + layoutStringHeaderSize, fieldType);
|
||||
}
|
||||
|
||||
if (offset) {
|
||||
|
||||
@@ -3,31 +3,31 @@
|
||||
// REQUIRES: swift_feature_LayoutStringValueWitnesses
|
||||
// REQUIRES: swift_feature_LayoutStringValueWitnessesInstantiation
|
||||
|
||||
// CHECK-NOT: @"$s3Foo7GenericVWV" = {{.*}}ptr @swift_generic{{.*$}}
|
||||
// CHECK-NOT: @"$s3Foo7GenericVWV" = {{.*}}ptr @swift_cvw{{.*$}}
|
||||
struct Generic<T: ~Copyable>: ~Copyable {
|
||||
let x: T
|
||||
let y: Int
|
||||
}
|
||||
|
||||
// CHECK-NOT: @"$s3Foo13SinglePayloadOWV" = {{.*}}ptr @swift_generic{{.*$}}
|
||||
// CHECK-NOT: @"$s3Foo13SinglePayloadOWV" = {{.*}}ptr @swift_cvw{{.*$}}
|
||||
enum SinglePayload: ~Copyable {
|
||||
case x(AnyObject)
|
||||
case y
|
||||
}
|
||||
|
||||
// CHECK-NOT: @"$s3Foo12MultiPayloadOWV" = {{.*}}ptr @swift_generic{{.*$}}
|
||||
// CHECK-NOT: @"$s3Foo12MultiPayloadOWV" = {{.*}}ptr @swift_cvw{{.*$}}
|
||||
enum MultiPayload: ~Copyable {
|
||||
case x(AnyObject)
|
||||
case y(AnyObject)
|
||||
}
|
||||
|
||||
// CHECK-NOT: @"$s3Foo20SinglePayloadGenericOWV" = {{.*}}ptr @swift_generic{{.*$}}
|
||||
// CHECK-NOT: @"$s3Foo20SinglePayloadGenericOWV" = {{.*}}ptr @swift_cvw{{.*$}}
|
||||
enum SinglePayloadGeneric<T>: ~Copyable {
|
||||
case x(T)
|
||||
case y
|
||||
}
|
||||
|
||||
// CHECK-NOT: @"$s3Foo19MultiPayloadGenericOWV" = {{.*}}ptr @swift_generic{{.*$}}
|
||||
// CHECK-NOT: @"$s3Foo19MultiPayloadGenericOWV" = {{.*}}ptr @swift_cvw{{.*$}}
|
||||
enum MultiPayloadGeneric<T>: ~Copyable {
|
||||
case x(T)
|
||||
case y(T)
|
||||
|
||||
@@ -845,3 +845,27 @@ Added: _$ss4SlabVsRi__rlE8_storagexq_BVvr
|
||||
|
||||
// Shared string creation for Foundation
|
||||
Added: _$ss40_SwiftCreateImmortalString_ForFoundation6buffer7isASCIISSSgSRys5UInt8VG_SbtF
|
||||
|
||||
// Compact value witnesses
|
||||
Added: _swift_cvw_allocateGenericClassMetadataWithLayoutString
|
||||
Added: _swift_cvw_allocateGenericValueMetadataWithLayoutString
|
||||
Added: _swift_cvw_assignWithCopy
|
||||
Added: _swift_cvw_assignWithTake
|
||||
Added: _swift_cvw_destroy
|
||||
Added: _swift_cvw_enumFn_getEnumTag
|
||||
Added: _swift_cvw_enumSimple_destructiveInjectEnumTag
|
||||
Added: _swift_cvw_enumSimple_getEnumTag
|
||||
Added: _swift_cvw_initEnumMetadataMultiPayloadWithLayoutString
|
||||
Added: _swift_cvw_initEnumMetadataSingleCaseWithLayoutString
|
||||
Added: _swift_cvw_initEnumMetadataSinglePayloadWithLayoutString
|
||||
Added: _swift_cvw_initStructMetadataWithLayoutString
|
||||
Added: _swift_cvw_initWithCopy
|
||||
Added: _swift_cvw_initWithTake
|
||||
Added: _swift_cvw_initializeBufferWithCopyOfBuffer
|
||||
Added: _swift_cvw_instantiateLayoutString
|
||||
Added: _swift_cvw_multiPayloadEnumGeneric_destructiveInjectEnumTag
|
||||
Added: _swift_cvw_multiPayloadEnumGeneric_getEnumTag
|
||||
Added: _swift_cvw_singlePayloadEnumGeneric_destructiveInjectEnumTag
|
||||
Added: _swift_cvw_singlePayloadEnumGeneric_getEnumTag
|
||||
Added: _swift_cvw_singletonEnum_destructiveInjectEnumTag
|
||||
Added: _swift_cvw_singletonEnum_getEnumTag
|
||||
|
||||
@@ -846,3 +846,27 @@ Added: _$ss4SlabVsRi__rlE8_storagexq_BVvr
|
||||
|
||||
// Shared string creation for Foundation
|
||||
Added: _$ss40_SwiftCreateImmortalString_ForFoundation6buffer7isASCIISSSgSRys5UInt8VG_SbtF
|
||||
|
||||
// Compact value witnesses
|
||||
Added: _swift_cvw_allocateGenericClassMetadataWithLayoutString
|
||||
Added: _swift_cvw_allocateGenericValueMetadataWithLayoutString
|
||||
Added: _swift_cvw_assignWithCopy
|
||||
Added: _swift_cvw_assignWithTake
|
||||
Added: _swift_cvw_destroy
|
||||
Added: _swift_cvw_enumFn_getEnumTag
|
||||
Added: _swift_cvw_enumSimple_destructiveInjectEnumTag
|
||||
Added: _swift_cvw_enumSimple_getEnumTag
|
||||
Added: _swift_cvw_initEnumMetadataMultiPayloadWithLayoutString
|
||||
Added: _swift_cvw_initEnumMetadataSingleCaseWithLayoutString
|
||||
Added: _swift_cvw_initEnumMetadataSinglePayloadWithLayoutString
|
||||
Added: _swift_cvw_initStructMetadataWithLayoutString
|
||||
Added: _swift_cvw_initWithCopy
|
||||
Added: _swift_cvw_initWithTake
|
||||
Added: _swift_cvw_initializeBufferWithCopyOfBuffer
|
||||
Added: _swift_cvw_instantiateLayoutString
|
||||
Added: _swift_cvw_multiPayloadEnumGeneric_destructiveInjectEnumTag
|
||||
Added: _swift_cvw_multiPayloadEnumGeneric_getEnumTag
|
||||
Added: _swift_cvw_singlePayloadEnumGeneric_destructiveInjectEnumTag
|
||||
Added: _swift_cvw_singlePayloadEnumGeneric_getEnumTag
|
||||
Added: _swift_cvw_singletonEnum_destructiveInjectEnumTag
|
||||
Added: _swift_cvw_singletonEnum_getEnumTag
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
// REQUIRES: swift_feature_LayoutStringValueWitnessesInstantiation
|
||||
|
||||
// CHECK: define internal ptr @"$s13rdar1275352744TestVMi"
|
||||
// CHECK: [[METADATA:%.*]] = call ptr @swift_allocateGenericValueMetadataWithLayoutString
|
||||
// CHECK: call void @swift_generic_instantiateLayoutString(ptr @"type_layout_string l13rdar1275352744TestVyxG", ptr [[METADATA]])
|
||||
// CHECK: [[METADATA:%.*]] = call ptr @swift_cvw_allocateGenericValueMetadataWithLayoutString
|
||||
// CHECK: call void @swift_cvw_instantiateLayoutString(ptr @"type_layout_string l13rdar1275352744TestVyxG", ptr [[METADATA]])
|
||||
// CHECK: ret ptr [[METADATA]]
|
||||
// CHECK: }
|
||||
public struct Test<T> {
|
||||
|
||||
Reference in New Issue
Block a user