Skip to content

Commit 9013bbb

Browse files
authored
Merge pull request #29981 from slavapestov/relative-protocol-descriptor-pointer-cleanup
ABI: Introduce TargetRelativeProtocolRequirementPointer
2 parents 4494dc3 + b1c69bd commit 9013bbb

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

include/swift/ABI/Metadata.h

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -861,6 +861,16 @@ using TargetRelativeMethodDescriptorPointer =
861861
using RelativeMethodDescriptorPointer =
862862
TargetRelativeMethodDescriptorPointer<InProcess>;
863863

864+
template<typename Runtime> struct TargetProtocolRequirement;
865+
866+
template<typename Runtime>
867+
using TargetRelativeProtocolRequirementPointer =
868+
RelativeIndirectablePointer<const TargetProtocolRequirement<Runtime>,
869+
/*nullable*/ true>;
870+
871+
using RelativeProtocolRequirementPointer =
872+
TargetRelativeProtocolRequirementPointer<InProcess>;
873+
864874
/// An entry in the method override table, referencing a method from one of our
865875
/// ancestor classes, together with an implementation.
866876
template <typename Runtime>
@@ -2078,7 +2088,7 @@ using GenericBoxHeapMetadata = TargetGenericBoxHeapMetadata<InProcess>;
20782088
/// pointer to the protocol requirement descriptor.
20792089
template <typename Runtime>
20802090
struct TargetResilientWitness {
2081-
RelativeIndirectablePointer<TargetProtocolRequirement<Runtime>> Requirement;
2091+
TargetRelativeProtocolRequirementPointer<Runtime> Requirement;
20822092
RelativeDirectPointer<void> Witness;
20832093
};
20842094
using ResilientWitness = TargetResilientWitness<InProcess>;

0 commit comments

Comments
 (0)