Add the ability for a owning addressor to return

a non-native owner.  This is required by Slice, which
will use an ObjC immutable array object as the owner
as long as all the elements are contiguous.

As part of this, I decided it was best to encode the
native requirement in the accessor names.  This makes
some of these accessors really long; we can revisit this
if we productize this feature.

Note that pinning addressors still require a native
owner, since pinning as a feature is specific to swift
refcounting.

Swift SVN r24420
This commit is contained in:
John McCall
2015-01-14 19:14:20 +00:00
parent 513a55544f
commit cae0f6e3db
18 changed files with 133 additions and 78 deletions

View File

@@ -609,8 +609,10 @@ static uint8_t getRawStableAddressorKind(swift::AddressorKind kind) {
return uint8_t(serialization::AddressorKind::Unsafe);
case swift::AddressorKind::Owning:
return uint8_t(serialization::AddressorKind::Owning);
case swift::AddressorKind::Pinning:
return uint8_t(serialization::AddressorKind::Pinning);
case swift::AddressorKind::NativeOwning:
return uint8_t(serialization::AddressorKind::NativeOwning);
case swift::AddressorKind::NativePinning:
return uint8_t(serialization::AddressorKind::NativePinning);
}
llvm_unreachable("bad addressor kind");
}