mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Merge pull request #11950 from aschwaighofer/runtime_return_dest_2
runtime: Also return the destination argument of the unknownWeak- and…
This commit is contained in:
@@ -889,13 +889,15 @@ static inline void swift_nonatomic_unknownRelease_n(void *value, int n)
|
||||
///
|
||||
/// \param ref - never null
|
||||
/// \param value - not necessarily a native Swift object; can be null
|
||||
/// \return ref
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
void swift_unknownWeakInit(WeakReference *ref, void *value);
|
||||
WeakReference *swift_unknownWeakInit(WeakReference *ref, void *value);
|
||||
|
||||
#else
|
||||
|
||||
static inline void swift_unknownWeakInit(WeakReference *ref, void *value) {
|
||||
swift_weakInit(ref, static_cast<HeapObject *>(value));
|
||||
static inline WeakReference *swift_unknownWeakInit(WeakReference *ref,
|
||||
void *value) {
|
||||
return swift_weakInit(ref, static_cast<HeapObject *>(value));
|
||||
}
|
||||
|
||||
#endif /* SWIFT_OBJC_INTEROP */
|
||||
@@ -906,13 +908,15 @@ static inline void swift_unknownWeakInit(WeakReference *ref, void *value) {
|
||||
///
|
||||
/// \param ref - never null
|
||||
/// \param value - not necessarily a native Swift object; can be null
|
||||
/// \return ref
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
void swift_unknownWeakAssign(WeakReference *ref, void *value);
|
||||
WeakReference *swift_unknownWeakAssign(WeakReference *ref, void *value);
|
||||
|
||||
#else
|
||||
|
||||
static inline void swift_unknownWeakAssign(WeakReference *ref, void *value) {
|
||||
swift_weakAssign(ref, static_cast<HeapObject *>(value));
|
||||
static inline WeakReference *swift_unknownWeakAssign(WeakReference *ref,
|
||||
void *value) {
|
||||
return swift_weakAssign(ref, static_cast<HeapObject *>(value));
|
||||
}
|
||||
|
||||
#endif /* SWIFT_OBJC_INTEROP */
|
||||
@@ -973,15 +977,16 @@ static inline void swift_unknownWeakDestroy(WeakReference *object) {
|
||||
|
||||
/// Copy-initialize a weak reference variable from one that might not
|
||||
/// refer to a native Swift object.
|
||||
/// \return dest
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
void swift_unknownWeakCopyInit(WeakReference *dest,
|
||||
WeakReference *src);
|
||||
WeakReference *swift_unknownWeakCopyInit(WeakReference *dest,
|
||||
WeakReference *src);
|
||||
|
||||
#else
|
||||
|
||||
static inline void swift_unknownWeakCopyInit(WeakReference *dest,
|
||||
WeakReference *src) {
|
||||
swift_weakCopyInit(dest, src);
|
||||
static inline WeakReference *swift_unknownWeakCopyInit(WeakReference *dest,
|
||||
WeakReference *src) {
|
||||
return swift_weakCopyInit(dest, src);
|
||||
}
|
||||
|
||||
#endif /* SWIFT_OBJC_INTEROP */
|
||||
@@ -990,15 +995,16 @@ static inline void swift_unknownWeakCopyInit(WeakReference *dest,
|
||||
|
||||
/// Take-initialize a weak reference variable from one that might not
|
||||
/// refer to a native Swift object.
|
||||
/// \return dest
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
void swift_unknownWeakTakeInit(WeakReference *dest,
|
||||
WeakReference *src);
|
||||
WeakReference *swift_unknownWeakTakeInit(WeakReference *dest,
|
||||
WeakReference *src);
|
||||
|
||||
#else
|
||||
|
||||
static inline void swift_unknownWeakTakeInit(WeakReference *dest,
|
||||
WeakReference *src) {
|
||||
swift_weakTakeInit(dest, src);
|
||||
static inline WeakReference *swift_unknownWeakTakeInit(WeakReference *dest,
|
||||
WeakReference *src) {
|
||||
return swift_weakTakeInit(dest, src);
|
||||
}
|
||||
|
||||
#endif /* SWIFT_OBJC_INTEROP */
|
||||
@@ -1007,15 +1013,16 @@ static inline void swift_unknownWeakTakeInit(WeakReference *dest,
|
||||
|
||||
/// Copy-assign a weak reference variable from another when either
|
||||
/// or both variables might not refer to a native Swift object.
|
||||
/// \return dest
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
void swift_unknownWeakCopyAssign(WeakReference *dest,
|
||||
WeakReference *src);
|
||||
WeakReference *swift_unknownWeakCopyAssign(WeakReference *dest,
|
||||
WeakReference *src);
|
||||
|
||||
#else
|
||||
|
||||
static inline void swift_unknownWeakCopyAssign(WeakReference *dest,
|
||||
WeakReference *src) {
|
||||
swift_weakCopyAssign(dest, src);
|
||||
static inline WeakReference *swift_unknownWeakCopyAssign(WeakReference *dest,
|
||||
WeakReference *src) {
|
||||
return swift_weakCopyAssign(dest, src);
|
||||
}
|
||||
|
||||
#endif /* SWIFT_OBJC_INTEROP */
|
||||
@@ -1024,15 +1031,16 @@ static inline void swift_unknownWeakCopyAssign(WeakReference *dest,
|
||||
|
||||
/// Take-assign a weak reference variable from another when either
|
||||
/// or both variables might not refer to a native Swift object.
|
||||
/// \return dest
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
void swift_unknownWeakTakeAssign(WeakReference *dest,
|
||||
WeakReference *src);
|
||||
WeakReference *swift_unknownWeakTakeAssign(WeakReference *dest,
|
||||
WeakReference *src);
|
||||
|
||||
#else
|
||||
|
||||
static inline void swift_unknownWeakTakeAssign(WeakReference *dest,
|
||||
WeakReference *src) {
|
||||
swift_weakTakeAssign(dest, src);
|
||||
static inline WeakReference *swift_unknownWeakTakeAssign(WeakReference *dest,
|
||||
WeakReference *src) {
|
||||
return swift_weakTakeAssign(dest, src);
|
||||
}
|
||||
|
||||
#endif /* SWIFT_OBJC_INTEROP */
|
||||
@@ -1045,14 +1053,16 @@ static inline void swift_unknownWeakTakeAssign(WeakReference *dest,
|
||||
|
||||
/// Initialize an unowned reference to an object with unknown reference
|
||||
/// counting.
|
||||
/// \return ref
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
void swift_unknownUnownedInit(UnownedReference *ref, void *value);
|
||||
UnownedReference *swift_unknownUnownedInit(UnownedReference *ref, void *value);
|
||||
|
||||
#else
|
||||
|
||||
static inline void swift_unknownUnownedInit(UnownedReference *ref,
|
||||
void *value) {
|
||||
static inline UnownedReference *swift_unknownUnownedInit(UnownedReference *ref,
|
||||
void *value) {
|
||||
swift_unownedInit(ref, static_cast<HeapObject*>(value));
|
||||
return ref;
|
||||
}
|
||||
|
||||
#endif /* SWIFT_OBJC_INTEROP */
|
||||
@@ -1061,14 +1071,17 @@ static inline void swift_unknownUnownedInit(UnownedReference *ref,
|
||||
|
||||
/// Assign to an unowned reference holding an object with unknown reference
|
||||
/// counting.
|
||||
/// \return ref
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
void swift_unknownUnownedAssign(UnownedReference *ref, void *value);
|
||||
UnownedReference *swift_unknownUnownedAssign(UnownedReference *ref,
|
||||
void *value);
|
||||
|
||||
#else
|
||||
|
||||
static inline void swift_unknownUnownedAssign(UnownedReference *ref,
|
||||
void *value) {
|
||||
static inline UnownedReference *
|
||||
swift_unknownUnownedAssign(UnownedReference *ref, void *value) {
|
||||
swift_unownedAssign(ref, static_cast<HeapObject*>(value));
|
||||
return ref;
|
||||
}
|
||||
|
||||
#endif /* SWIFT_OBJC_INTEROP */
|
||||
@@ -1121,15 +1134,17 @@ static inline void swift_unknownUnownedDestroy(UnownedReference *ref) {
|
||||
|
||||
/// Copy-initialize an unowned reference variable from one that might not
|
||||
/// refer to a native Swift object.
|
||||
/// \return dest
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
void swift_unknownUnownedCopyInit(UnownedReference *dest,
|
||||
UnownedReference *src);
|
||||
UnownedReference *swift_unknownUnownedCopyInit(UnownedReference *dest,
|
||||
UnownedReference *src);
|
||||
|
||||
#else
|
||||
|
||||
static inline void swift_unknownUnownedCopyInit(UnownedReference *dest,
|
||||
UnownedReference *src) {
|
||||
static inline UnownedReference *
|
||||
swift_unknownUnownedCopyInit(UnownedReference *dest, UnownedReference *src) {
|
||||
swift_unownedCopyInit(dest, src);
|
||||
return dest;
|
||||
}
|
||||
|
||||
#endif /* SWIFT_OBJC_INTEROP */
|
||||
@@ -1139,14 +1154,15 @@ static inline void swift_unknownUnownedCopyInit(UnownedReference *dest,
|
||||
/// Take-initialize an unowned reference variable from one that might not
|
||||
/// refer to a native Swift object.
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
void swift_unknownUnownedTakeInit(UnownedReference *dest,
|
||||
UnownedReference *src);
|
||||
UnownedReference *swift_unknownUnownedTakeInit(UnownedReference *dest,
|
||||
UnownedReference *src);
|
||||
|
||||
#else
|
||||
|
||||
static inline void swift_unknownUnownedTakeInit(UnownedReference *dest,
|
||||
UnownedReference *src) {
|
||||
static inline UnownedReference *
|
||||
swift_unknownUnownedTakeInit(UnownedReference *dest, UnownedReference *src) {
|
||||
swift_unownedTakeInit(dest, src);
|
||||
return dest;
|
||||
}
|
||||
|
||||
#endif /* SWIFT_OBJC_INTEROP */
|
||||
@@ -1155,15 +1171,17 @@ static inline void swift_unknownUnownedTakeInit(UnownedReference *dest,
|
||||
|
||||
/// Copy-assign an unowned reference variable from another when either
|
||||
/// or both variables might not refer to a native Swift object.
|
||||
/// \return dest
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
void swift_unknownUnownedCopyAssign(UnownedReference *dest,
|
||||
UnownedReference *src);
|
||||
UnownedReference *swift_unknownUnownedCopyAssign(UnownedReference *dest,
|
||||
UnownedReference *src);
|
||||
|
||||
#else
|
||||
|
||||
static inline void swift_unknownUnownedCopyAssign(UnownedReference *dest,
|
||||
UnownedReference *src) {
|
||||
static inline UnownedReference *
|
||||
swift_unknownUnownedCopyAssign(UnownedReference *dest, UnownedReference *src) {
|
||||
swift_unownedCopyAssign(dest, src);
|
||||
return dest;
|
||||
}
|
||||
|
||||
#endif /* SWIFT_OBJC_INTEROP */
|
||||
@@ -1172,15 +1190,17 @@ static inline void swift_unknownUnownedCopyAssign(UnownedReference *dest,
|
||||
|
||||
/// Take-assign an unowned reference variable from another when either
|
||||
/// or both variables might not refer to a native Swift object.
|
||||
/// \return dest
|
||||
SWIFT_RUNTIME_EXPORT
|
||||
void swift_unknownUnownedTakeAssign(UnownedReference *dest,
|
||||
UnownedReference *src);
|
||||
UnownedReference *swift_unknownUnownedTakeAssign(UnownedReference *dest,
|
||||
UnownedReference *src);
|
||||
|
||||
#else
|
||||
|
||||
static inline void swift_unknownUnownedTakeAssign(UnownedReference *dest,
|
||||
UnownedReference *src) {
|
||||
static inline UnownedReference *
|
||||
swift_unknownUnownedTakeAssign(UnownedReference *dest, UnownedReference *src) {
|
||||
swift_unownedTakeAssign(dest, src);
|
||||
return dest;
|
||||
}
|
||||
|
||||
#endif /* SWIFT_OBJC_INTEROP */
|
||||
|
||||
@@ -520,15 +520,15 @@ FUNCTION(UnknownWeakDestroy, swift_unknownWeakDestroy, DefaultCC,
|
||||
|
||||
// void swift_unknownWeakInit(WeakReference *object, void *value);
|
||||
FUNCTION(UnknownWeakInit, swift_unknownWeakInit, DefaultCC,
|
||||
RETURNS(VoidTy),
|
||||
RETURNS(WeakReferencePtrTy),
|
||||
ARGS(WeakReferencePtrTy, UnknownRefCountedPtrTy),
|
||||
ATTRS(NoUnwind))
|
||||
ATTRS(NoUnwind, FirstParamReturned))
|
||||
|
||||
// void swift_unknownWeakAssign(WeakReference *object, void *value);
|
||||
// WeakReference *swift_unknownWeakAssign(WeakReference *object, void *value);
|
||||
FUNCTION(UnknownWeakAssign, swift_unknownWeakAssign, DefaultCC,
|
||||
RETURNS(VoidTy),
|
||||
RETURNS(WeakReferencePtrTy),
|
||||
ARGS(WeakReferencePtrTy, UnknownRefCountedPtrTy),
|
||||
ATTRS(NoUnwind))
|
||||
ATTRS(NoUnwind, FirstParamReturned))
|
||||
|
||||
// void *swift_unknownWeakLoad(WeakReference *object);
|
||||
FUNCTION(UnknownWeakLoadStrong, swift_unknownWeakLoadStrong,DefaultCC,
|
||||
@@ -542,29 +542,29 @@ FUNCTION(UnknownWeakTakeStrong, swift_unknownWeakTakeStrong,DefaultCC,
|
||||
ARGS(WeakReferencePtrTy),
|
||||
ATTRS(NoUnwind))
|
||||
|
||||
// void swift_unknownWeakCopyInit(WeakReference *dest, WeakReference *src);
|
||||
// WeakReference *swift_unknownWeakCopyInit(WeakReference *dest, WeakReference *src);
|
||||
FUNCTION(UnknownWeakCopyInit, swift_unknownWeakCopyInit, DefaultCC,
|
||||
RETURNS(VoidTy),
|
||||
RETURNS(WeakReferencePtrTy),
|
||||
ARGS(WeakReferencePtrTy, WeakReferencePtrTy),
|
||||
ATTRS(NoUnwind))
|
||||
ATTRS(NoUnwind, FirstParamReturned))
|
||||
|
||||
// void swift_unknownWeakTakeInit(WeakReference *dest, WeakReference *src);
|
||||
// void *swift_unknownWeakTakeInit(WeakReference *dest, WeakReference *src);
|
||||
FUNCTION(UnknownWeakTakeInit, swift_unknownWeakTakeInit, DefaultCC,
|
||||
RETURNS(VoidTy),
|
||||
RETURNS(WeakReferencePtrTy),
|
||||
ARGS(WeakReferencePtrTy, WeakReferencePtrTy),
|
||||
ATTRS(NoUnwind))
|
||||
ATTRS(NoUnwind, FirstParamReturned))
|
||||
|
||||
// void swift_unknownWeakCopyAssign(WeakReference *dest, WeakReference *src);
|
||||
// WeakReference *swift_unknownWeakCopyAssign(WeakReference *dest, WeakReference *src);
|
||||
FUNCTION(UnknownWeakCopyAssign, swift_unknownWeakCopyAssign, DefaultCC,
|
||||
RETURNS(VoidTy),
|
||||
RETURNS(WeakReferencePtrTy),
|
||||
ARGS(WeakReferencePtrTy, WeakReferencePtrTy),
|
||||
ATTRS(NoUnwind))
|
||||
ATTRS(NoUnwind, FirstParamReturned))
|
||||
|
||||
// void swift_unknownWeakTakeAssign(WeakReference *dest, WeakReference *src);
|
||||
// WeakReference *swift_unknownWeakTakeAssign(WeakReference *dest, WeakReference *src);
|
||||
FUNCTION(UnknownWeakTakeAssign, swift_unknownWeakTakeAssign, DefaultCC,
|
||||
RETURNS(VoidTy),
|
||||
RETURNS(WeakReferencePtrTy),
|
||||
ARGS(WeakReferencePtrTy, WeakReferencePtrTy),
|
||||
ATTRS(NoUnwind))
|
||||
ATTRS(NoUnwind, FirstParamReturned))
|
||||
|
||||
// void swift_unknownUnownedDestroy(UnownedReference *object);
|
||||
FUNCTION(UnknownUnownedDestroy, swift_unknownUnownedDestroy, DefaultCC,
|
||||
@@ -572,17 +572,17 @@ FUNCTION(UnknownUnownedDestroy, swift_unknownUnownedDestroy, DefaultCC,
|
||||
ARGS(UnownedReferencePtrTy),
|
||||
ATTRS(NoUnwind))
|
||||
|
||||
// void swift_unknownUnownedInit(UnownedReference *object, void *value);
|
||||
// UnownedReference *swift_unknownUnownedInit(UnownedReference *object, void *value);
|
||||
FUNCTION(UnknownUnownedInit, swift_unknownUnownedInit, DefaultCC,
|
||||
RETURNS(VoidTy),
|
||||
RETURNS(UnownedReferencePtrTy),
|
||||
ARGS(UnownedReferencePtrTy, UnknownRefCountedPtrTy),
|
||||
ATTRS(NoUnwind))
|
||||
ATTRS(NoUnwind, FirstParamReturned))
|
||||
|
||||
// void swift_unknownUnownedAssign(UnownedReference *object, void *value);
|
||||
// UnownedReference *swift_unknownUnownedAssign(UnownedReference *object, void *value);
|
||||
FUNCTION(UnknownUnownedAssign, swift_unknownUnownedAssign, DefaultCC,
|
||||
RETURNS(VoidTy),
|
||||
RETURNS(UnownedReferencePtrTy),
|
||||
ARGS(UnownedReferencePtrTy, UnknownRefCountedPtrTy),
|
||||
ATTRS(NoUnwind))
|
||||
ATTRS(NoUnwind, FirstParamReturned))
|
||||
|
||||
// void *swift_unknownUnownedLoad(UnownedReference *object);
|
||||
FUNCTION(UnknownUnownedLoadStrong, swift_unknownUnownedLoadStrong, DefaultCC,
|
||||
@@ -596,29 +596,29 @@ FUNCTION(UnknownUnownedTakeStrong, swift_unknownUnownedTakeStrong, DefaultCC,
|
||||
ARGS(UnownedReferencePtrTy),
|
||||
ATTRS(NoUnwind))
|
||||
|
||||
// void swift_unknownUnownedCopyInit(UnownedReference *dest, UnownedReference *src);
|
||||
// UnownedReference *swift_unknownUnownedCopyInit(UnownedReference *dest, UnownedReference *src);
|
||||
FUNCTION(UnknownUnownedCopyInit, swift_unknownUnownedCopyInit, DefaultCC,
|
||||
RETURNS(VoidTy),
|
||||
RETURNS(UnownedReferencePtrTy),
|
||||
ARGS(UnownedReferencePtrTy, UnownedReferencePtrTy),
|
||||
ATTRS(NoUnwind))
|
||||
ATTRS(NoUnwind, FirstParamReturned))
|
||||
|
||||
// void swift_unknownUnownedTakeInit(UnownedReference *dest, UnownedReference *src);
|
||||
// UnownedReference *swift_unknownUnownedTakeInit(UnownedReference *dest, UnownedReference *src);
|
||||
FUNCTION(UnknownUnownedTakeInit, swift_unknownUnownedTakeInit, DefaultCC,
|
||||
RETURNS(VoidTy),
|
||||
RETURNS(UnownedReferencePtrTy),
|
||||
ARGS(UnownedReferencePtrTy, UnownedReferencePtrTy),
|
||||
ATTRS(NoUnwind))
|
||||
ATTRS(NoUnwind, FirstParamReturned))
|
||||
|
||||
// void swift_unknownUnownedCopyAssign(UnownedReference *dest, UnownedReference *src);
|
||||
// UnownedReference *swift_unknownUnownedCopyAssign(UnownedReference *dest, UnownedReference *src);
|
||||
FUNCTION(UnknownUnownedCopyAssign, swift_unknownUnownedCopyAssign, DefaultCC,
|
||||
RETURNS(VoidTy),
|
||||
RETURNS(UnownedReferencePtrTy),
|
||||
ARGS(UnownedReferencePtrTy, UnownedReferencePtrTy),
|
||||
ATTRS(NoUnwind))
|
||||
ATTRS(NoUnwind, FirstParamReturned))
|
||||
|
||||
// void swift_unknownUnownedTakeAssign(UnownedReference *dest, UnownedReference *src);
|
||||
// UnownedReference *swift_unknownUnownedTakeAssign(UnownedReference *dest, UnownedReference *src);
|
||||
FUNCTION(UnknownUnownedTakeAssign, swift_unknownUnownedTakeAssign, DefaultCC,
|
||||
RETURNS(VoidTy),
|
||||
RETURNS(UnownedReferencePtrTy),
|
||||
ARGS(UnownedReferencePtrTy, UnownedReferencePtrTy),
|
||||
ATTRS(NoUnwind))
|
||||
ATTRS(NoUnwind, FirstParamReturned))
|
||||
|
||||
// bool swift_isUniquelyReferencedNonObjC(const void *);
|
||||
FUNCTION(IsUniquelyReferencedNonObjC, swift_isUniquelyReferencedNonObjC,
|
||||
|
||||
Reference in New Issue
Block a user