[stdlib] Rename [_]elementStorage=>[_]baseAddress

Swift SVN r20342
This commit is contained in:
Dave Abrahams
2014-07-22 22:29:03 +00:00
parent b96e08139b
commit 00f9ca5eda
19 changed files with 86 additions and 86 deletions

View File

@@ -193,7 +193,7 @@ extension _ArrayBuffer {
} }
/// If this buffer is backed by a _ContiguousArrayBuffer, return it. /// If this buffer is backed by a _ContiguousArrayBuffer, return it.
/// Otherwise, return nil. Note: the result's elementStorage may /// Otherwise, return nil. Note: the result's baseAddress may
/// not match ours, if we are a _SliceBuffer. /// not match ours, if we are a _SliceBuffer.
public public
func requestNativeBuffer() -> NativeBuffer? { func requestNativeBuffer() -> NativeBuffer? {
@@ -297,7 +297,7 @@ extension _ArrayBuffer {
// Tell Cocoa to copy the objects into our storage // Tell Cocoa to copy the objects into our storage
cocoa.buffer.getObjects( cocoa.buffer.getObjects(
UnsafeMutablePointer(result.elementStorage), UnsafeMutablePointer(result.baseAddress),
range: _SwiftNSRange(location: subRange.startIndex, length: subRangeCount) range: _SwiftNSRange(location: subRange.startIndex, length: subRangeCount)
) )
@@ -307,9 +307,9 @@ extension _ArrayBuffer {
/// If the elements are stored contiguously, a pointer to the first /// If the elements are stored contiguously, a pointer to the first
/// element. Otherwise, nil. /// element. Otherwise, nil.
public public
var elementStorage: UnsafeMutablePointer<T> { var baseAddress: UnsafeMutablePointer<T> {
if (_fastPath(_isNative)) { if (_fastPath(_isNative)) {
return _native.elementStorage return _native.baseAddress
} }
return nil return nil
} }
@@ -366,7 +366,7 @@ extension _ArrayBuffer {
indirect.replaceStorage(_copyCollectionToNativeArrayBuffer(self)) indirect.replaceStorage(_copyCollectionToNativeArrayBuffer(self))
} }
} }
let ret = body(self.elementStorage) let ret = body(self.baseAddress)
_fixLifetime(self) _fixLifetime(self)
return ret return ret
} }
@@ -378,10 +378,10 @@ extension _ArrayBuffer {
body: (UnsafeMutablePointer<T>)->R body: (UnsafeMutablePointer<T>)->R
) -> R { ) -> R {
_sanityCheck( _sanityCheck(
elementStorage != nil || count == 0, baseAddress != nil || count == 0,
"Array is bridging an opaque NSArray; can't get a pointer to the elements" "Array is bridging an opaque NSArray; can't get a pointer to the elements"
) )
let ret = body(elementStorage) let ret = body(baseAddress)
_fixLifetime(self) _fixLifetime(self)
return ret return ret
} }
@@ -397,7 +397,7 @@ extension _ArrayBuffer {
/// have the same identity and count. /// have the same identity and count.
public public
var identity: Word { var identity: Word {
let p = elementStorage let p = baseAddress
return p != nil ? reinterpretCast(p) : reinterpretCast(owner) return p != nil ? reinterpretCast(p) : reinterpretCast(owner)
} }

View File

@@ -39,7 +39,7 @@ public protocol _ArrayBufferType : MutableCollectionType {
/// If this buffer is backed by a uniquely-referenced mutable /// If this buffer is backed by a uniquely-referenced mutable
/// _ContiguousArrayBuffer that can be grown in-place to allow the self /// _ContiguousArrayBuffer that can be grown in-place to allow the self
/// buffer store minimumCapacity elements, returns that buffer. /// buffer store minimumCapacity elements, returns that buffer.
/// Otherwise, returns nil. Note: the result's elementStorage may /// Otherwise, returns nil. Note: the result's baseAddress may
/// not match ours, if we are a _SliceBuffer. /// not match ours, if we are a _SliceBuffer.
/// ///
/// Note: this function must remain mutating; otherwise the buffer /// Note: this function must remain mutating; otherwise the buffer
@@ -57,7 +57,7 @@ public protocol _ArrayBufferType : MutableCollectionType {
mutating func isMutableAndUniquelyReferenced() -> Bool mutating func isMutableAndUniquelyReferenced() -> Bool
/// If this buffer is backed by a _ContiguousArrayBuffer, return it. /// If this buffer is backed by a _ContiguousArrayBuffer, return it.
/// Otherwise, return nil. Note: the result's elementStorage may /// Otherwise, return nil. Note: the result's baseAddress may
/// not match ours, if we are a _SliceBuffer. /// not match ours, if we are a _SliceBuffer.
func requestNativeBuffer() -> _ContiguousArrayBuffer<Element>? func requestNativeBuffer() -> _ContiguousArrayBuffer<Element>?
@@ -97,7 +97,7 @@ public protocol _ArrayBufferType : MutableCollectionType {
/// If the elements are stored contiguously, a pointer to the first /// If the elements are stored contiguously, a pointer to the first
/// element. Otherwise, nil. /// element. Otherwise, nil.
var elementStorage: UnsafeMutablePointer<Element> {get} var baseAddress: UnsafeMutablePointer<Element> {get}
/// A value that identifies first mutable element, if any. Two /// A value that identifies first mutable element, if any. Two
/// arrays compare === iff they are both empty, or if their buffers /// arrays compare === iff they are both empty, or if their buffers

View File

@@ -37,7 +37,7 @@ internal protocol ArrayType
/// If the elements are stored contiguously, a pointer to the first /// If the elements are stored contiguously, a pointer to the first
/// element. Otherwise, nil. /// element. Otherwise, nil.
var _elementStorageIfContiguous: UnsafeMutablePointer<Element> {get} var _baseAddressIfContiguous: UnsafeMutablePointer<Element> {get}
subscript(index: Int) -> Self.Generator.Element {get set} subscript(index: Int) -> Self.Generator.Element {get set}

View File

@@ -86,7 +86,7 @@ public struct ${Self}<T> : MutableCollectionType, Sliceable {
var newBuffer = _ContiguousArrayBuffer<T>( var newBuffer = _ContiguousArrayBuffer<T>(
count: buffer.count, minimumCapacity: buffer.count) count: buffer.count, minimumCapacity: buffer.count)
let target = buffer._uninitializedCopy( let target = buffer._uninitializedCopy(
0..<count, target: newBuffer.elementStorage) 0..<count, target: newBuffer.baseAddress)
buffer = _Buffer(newBuffer) buffer = _Buffer(newBuffer)
} }
@@ -165,7 +165,7 @@ extension ${Self} : ArrayType {
_precondition(count >= 0, "Can't construct ${Self} with count < 0") _precondition(count >= 0, "Can't construct ${Self} with count < 0")
_buffer = _Buffer() _buffer = _Buffer()
reserveCapacity(count) reserveCapacity(count)
var p = _buffer.elementStorage var p = _buffer.baseAddress
for _ in 0..<count { for _ in 0..<count {
p++.initialize(repeatedValue) p++.initialize(repeatedValue)
} }
@@ -205,13 +205,13 @@ extension ${Self} : ArrayType {
/// If the elements are stored contiguously, a pointer to the first /// If the elements are stored contiguously, a pointer to the first
/// element. Otherwise, nil. /// element. Otherwise, nil.
public var _elementStorageIfContiguous: UnsafeMutablePointer<Element> { public var _baseAddressIfContiguous: UnsafeMutablePointer<Element> {
return _buffer.elementStorage return _buffer.baseAddress
} }
%if Self != 'Array': # // Array does not necessarily have contiguous storage %if Self != 'Array': # // Array does not necessarily have contiguous storage
var _elementStorage: UnsafeMutablePointer<Element> { var _baseAddress: UnsafeMutablePointer<Element> {
return _buffer.elementStorage return _buffer.baseAddress
} }
%end %end
//===--- basic mutations ------------------------------------------------===// //===--- basic mutations ------------------------------------------------===//
@@ -227,7 +227,7 @@ extension ${Self} : ArrayType {
var newBuffer = _ContiguousArrayBuffer<T>( var newBuffer = _ContiguousArrayBuffer<T>(
count: count, minimumCapacity: minimumCapacity) count: count, minimumCapacity: minimumCapacity)
_buffer._uninitializedCopy(0..<count, target: newBuffer.elementStorage) _buffer._uninitializedCopy(0..<count, target: newBuffer.baseAddress)
_buffer = _Buffer(newBuffer) _buffer = _Buffer(newBuffer)
} }
_sanityCheck(capacity >= minimumCapacity) _sanityCheck(capacity >= minimumCapacity)
@@ -377,12 +377,12 @@ extension ${Self} : Printable, DebugPrintable {
extension ${Self} { extension ${Self} {
@transparent @transparent
func _cPointerArgs() -> (AnyObject?, Builtin.RawPointer) { func _cPointerArgs() -> (AnyObject?, Builtin.RawPointer) {
let p = _elementStorageIfContiguous let p = _baseAddressIfContiguous
if _fastPath(p != nil || count == 0) { if _fastPath(p != nil || count == 0) {
return (_owner, p.value) return (_owner, p.value)
} }
let n = _extractOrCopyToNativeArrayBuffer(self._buffer) let n = _extractOrCopyToNativeArrayBuffer(self._buffer)
return (n.owner, n.elementStorage.value) return (n.owner, n.baseAddress.value)
} }
} }
@@ -429,7 +429,7 @@ extension ${Self} {
// Create an UnsafeBufferPointer over work that we can pass to body // Create an UnsafeBufferPointer over work that we can pass to body
var a = UnsafeMutableBufferPointer( var a = UnsafeMutableBufferPointer(
start: work._buffer.elementStorage, length: work.count) start: work._buffer.baseAddress, length: work.count)
// Invoke the body // Invoke the body
let ret = body(&a) let ret = body(&a)
@@ -505,7 +505,7 @@ func _arrayNonSliceInPlaceReplace<
let growth = insertCount - eraseCount let growth = insertCount - eraseCount
target.count = oldCount + growth target.count = oldCount + growth
let elements = target.elementStorage let elements = target.baseAddress
_sanityCheck(elements != nil) _sanityCheck(elements != nil)
let oldTailIndex = subRange.endIndex let oldTailIndex = subRange.endIndex
@@ -644,7 +644,7 @@ where C.Generator.Element == T
max(newCount, _growArrayCapacity(capacity)) max(newCount, _growArrayCapacity(capacity))
: newCount) : newCount)
var p = lhs._buffer.elementStorage + oldCount var p = lhs._buffer.baseAddress + oldCount
for x in rhs { for x in rhs {
(p++).initialize(x) (p++).initialize(x)
} }
@@ -726,18 +726,18 @@ func _arrayOutOfPlaceUpdate<
let sourceCount = source.count let sourceCount = source.count
let oldCount = sourceCount - headCount - tailCount let oldCount = sourceCount - headCount - tailCount
let destStart = dest!.elementStorage let destStart = dest!.baseAddress
let newStart = destStart + headCount let newStart = destStart + headCount
let newEnd = newStart + newCount let newEnd = newStart + newCount
// Check to see if we have storage we can move from // Check to see if we have storage we can move from
if let backing = source.requestUniqueMutableBackingBuffer(sourceCount) { if let backing = source.requestUniqueMutableBackingBuffer(sourceCount) {
let sourceStart = source.elementStorage let sourceStart = source.baseAddress
let oldStart = sourceStart + headCount let oldStart = sourceStart + headCount
// Destroy any items that may be lurking in a _SliceBuffer before // Destroy any items that may be lurking in a _SliceBuffer before
// its real first element // its real first element
let backingStart = backing.elementStorage let backingStart = backing.baseAddress
let sourceOffset = sourceStart - backingStart let sourceOffset = sourceStart - backingStart
backingStart.destroy(sourceOffset) backingStart.destroy(sourceOffset)
@@ -788,7 +788,7 @@ func _arrayAppend<_Buffer: _ArrayBufferType>(
let oldCount = buffer.count let oldCount = buffer.count
var newBuffer = _createUniqueMutableBuffer(&buffer, oldCount + 1) var newBuffer = _createUniqueMutableBuffer(&buffer, oldCount + 1)
if _fastPath(!newBuffer) { if _fastPath(!newBuffer) {
(buffer.elementStorage + oldCount).initialize(newValue) (buffer.baseAddress + oldCount).initialize(newValue)
} }
else { else {
_arrayOutOfPlaceUpdate( _arrayOutOfPlaceUpdate(
@@ -843,7 +843,7 @@ func _arrayAppendSequence<
nextItem = stream.next() nextItem = stream.next()
while nextItem { while nextItem {
let capacity = buffer.capacity let capacity = buffer.capacity
let base = buffer.elementStorage let base = buffer.baseAddress
while nextItem && count < capacity { while nextItem && count < capacity {
(base + count++).initialize(nextItem!) (base + count++).initialize(nextItem!)

View File

@@ -23,7 +23,7 @@ final internal class _ContiguousArrayStorage<T> : _NSSwiftArray {
deinit { deinit {
let b = Buffer(self) let b = Buffer(self)
b.elementStorage.destroy(b.count) b.baseAddress.destroy(b.count)
b._base._value.destroy() b._base._value.destroy()
} }
@@ -108,7 +108,7 @@ public struct _ContiguousArrayBuffer<T> : _ArrayBufferType {
/// Make a buffer with uninitialized elements. After using this /// Make a buffer with uninitialized elements. After using this
/// method, you must either initialize the count elements at the /// method, you must either initialize the count elements at the
/// result's .elementStorage or set the result's .count to zero. /// result's .baseAddress or set the result's .count to zero.
public init(count: Int, minimumCapacity: Int) public init(count: Int, minimumCapacity: Int)
{ {
_base = HeapBuffer( _base = HeapBuffer(
@@ -135,27 +135,27 @@ public struct _ContiguousArrayBuffer<T> : _ArrayBufferType {
/// If the elements are stored contiguously, a pointer to the first /// If the elements are stored contiguously, a pointer to the first
/// element. Otherwise, nil. /// element. Otherwise, nil.
public var elementStorage: UnsafeMutablePointer<T> { public var baseAddress: UnsafeMutablePointer<T> {
return _base.hasStorage ? _base.elementStorage : nil return _base.hasStorage ? _base.baseAddress : nil
} }
/// A pointer to the first element, assuming that the elements are stored /// A pointer to the first element, assuming that the elements are stored
/// contiguously. /// contiguously.
var _unsafeElementStorage: UnsafeMutablePointer<T> { var _unsafeElementStorage: UnsafeMutablePointer<T> {
return _base.elementStorage return _base.baseAddress
} }
public func withUnsafePointerToElements<R>( public func withUnsafePointerToElements<R>(
body: (UnsafePointer<T>)->R body: (UnsafePointer<T>)->R
) -> R { ) -> R {
let p = _base.elementStorage let p = _base.baseAddress
return withExtendedLifetime(_base) { body(p) } return withExtendedLifetime(_base) { body(p) }
} }
public mutating func withUnsafeMutablePointerToElements<R>( public mutating func withUnsafeMutablePointerToElements<R>(
body: (UnsafeMutablePointer<T>)->R body: (UnsafeMutablePointer<T>)->R
) -> R { ) -> R {
let p = _base.elementStorage let p = _base.baseAddress
return withExtendedLifetime(_base) { body(p) } return withExtendedLifetime(_base) { body(p) }
} }
@@ -194,7 +194,7 @@ public struct _ContiguousArrayBuffer<T> : _ArrayBufferType {
} }
/// If this buffer is backed by a _ContiguousArrayBuffer, return it. /// If this buffer is backed by a _ContiguousArrayBuffer, return it.
/// Otherwise, return nil. Note: the result's elementStorage may /// Otherwise, return nil. Note: the result's baseAddress may
/// not match ours, if we are a _SliceBuffer. /// not match ours, if we are a _SliceBuffer.
public func requestNativeBuffer() -> _ContiguousArrayBuffer<Element>? { public func requestNativeBuffer() -> _ContiguousArrayBuffer<Element>? {
return self return self
@@ -270,7 +270,7 @@ public struct _ContiguousArrayBuffer<T> : _ArrayBufferType {
_sanityCheck(subRange.endIndex <= count) _sanityCheck(subRange.endIndex <= count)
var dst = target var dst = target
var src = elementStorage + subRange.startIndex var src = baseAddress + subRange.startIndex
for i in subRange { for i in subRange {
dst++.initialize(src++.memory) dst++.initialize(src++.memory)
} }
@@ -284,7 +284,7 @@ public struct _ContiguousArrayBuffer<T> : _ArrayBufferType {
{ {
return _SliceBuffer( return _SliceBuffer(
owner: _base.storage, owner: _base.storage,
start: elementStorage + subRange.startIndex, start: baseAddress + subRange.startIndex,
count: subRange.endIndex - subRange.startIndex, count: subRange.endIndex - subRange.startIndex,
hasNativeBuffer: true) hasNativeBuffer: true)
} }
@@ -328,7 +328,7 @@ public struct _ContiguousArrayBuffer<T> : _ArrayBufferType {
/// have the same identity and count. /// have the same identity and count.
public public
var identity: Word { var identity: Word {
return reinterpretCast(elementStorage) return reinterpretCast(baseAddress)
} }
/// Return true iff we have storage for elements of the given /// Return true iff we have storage for elements of the given
@@ -384,7 +384,7 @@ public func += <
if _fastPath(newCount <= lhs.capacity) { if _fastPath(newCount <= lhs.capacity) {
lhs.count = newCount lhs.count = newCount
(lhs.elementStorage + oldCount).initializeFrom(rhs) (lhs.baseAddress + oldCount).initializeFrom(rhs)
} }
else { else {
let newLHS = _ContiguousArrayBuffer<T>( let newLHS = _ContiguousArrayBuffer<T>(
@@ -392,12 +392,12 @@ public func += <
minimumCapacity: _growArrayCapacity(lhs.capacity)) minimumCapacity: _growArrayCapacity(lhs.capacity))
if lhs._base.hasStorage { if lhs._base.hasStorage {
newLHS.elementStorage.moveInitializeFrom(lhs.elementStorage, newLHS.baseAddress.moveInitializeFrom(lhs.baseAddress,
count: oldCount) count: oldCount)
lhs._base.value.count = 0 lhs._base.value.count = 0
} }
lhs._base = newLHS._base lhs._base = newLHS._base
(lhs._base.elementStorage + oldCount).initializeFrom(rhs) (lhs._base.baseAddress + oldCount).initializeFrom(rhs)
} }
} }
@@ -469,7 +469,7 @@ internal func _copyCollectionToNativeArrayBuffer<
minimumCapacity: 0 minimumCapacity: 0
) )
var p = result.elementStorage var p = result.baseAddress
for x in GeneratorSequence(source.generate()) { for x in GeneratorSequence(source.generate()) {
(p++).initialize(x) (p++).initialize(x)
} }

View File

@@ -260,7 +260,7 @@ final class _NativeDictionaryStorageImpl<Key : Hashable, Value> :
reinterpretCast(self) as DictionaryHeapBuffer.Storage) reinterpretCast(self) as DictionaryHeapBuffer.Storage)
let body = buffer.value let body = buffer.value
buffer._value.destroy() buffer._value.destroy()
buffer.elementStorage.destroy(body.capacity) buffer.baseAddress.destroy(body.capacity)
} }
final func __getInstanceSizeAndAlignMask() -> (Int,Int) { final func __getInstanceSizeAndAlignMask() -> (Int,Int) {
let buffer = DictionaryHeapBuffer( let buffer = DictionaryHeapBuffer(
@@ -290,7 +290,7 @@ struct _NativeDictionaryStorage<Key : Hashable, Value> :
@transparent @transparent
var elements: UnsafeMutablePointer<Element?> { var elements: UnsafeMutablePointer<Element?> {
return buffer.elementStorage return buffer.baseAddress
} }
init(capacity: Int) { init(capacity: Int) {
@@ -2208,7 +2208,7 @@ func _stdlib_NSDictionary_allKeys(nsd: _SwiftNSDictionaryType)
let count = nsd.count let count = nsd.count
var buffer = HeapBuffer<Int, AnyObject>( var buffer = HeapBuffer<Int, AnyObject>(
HeapBufferStorage<Int, AnyObject>.self, count, count) HeapBufferStorage<Int, AnyObject>.self, count, count)
nsd.getObjects(nil, andKeys: buffer.elementStorage) nsd.getObjects(nil, andKeys: buffer.baseAddress)
return buffer return buffer
} }

View File

@@ -34,7 +34,7 @@ func _malloc_size(heapMemory: UnsafeMutablePointer<Void>) -> Int
/// template <class Value, class Element> /// template <class Value, class Element>
/// struct HeapBuffer { /// struct HeapBuffer {
/// Value value; /// Value value;
/// Element elementStorage[]; // length determined at creation time /// Element baseAddress[]; // length determined at creation time
/// ///
/// HeapBuffer() = delete /// HeapBuffer() = delete
/// static shared_ptr<HeapBuffer> create(Value init, int capacity); /// static shared_ptr<HeapBuffer> create(Value init, int capacity);
@@ -115,7 +115,7 @@ public struct HeapBuffer<Value, Element> : Equatable {
HeapBuffer._valueOffset() + _address) HeapBuffer._valueOffset() + _address)
} }
var elementStorage: UnsafeMutablePointer<Element> { var baseAddress: UnsafeMutablePointer<Element> {
return UnsafeMutablePointer(HeapBuffer._elementOffset() + _address) return UnsafeMutablePointer(HeapBuffer._elementOffset() + _address)
} }
@@ -177,10 +177,10 @@ public struct HeapBuffer<Value, Element> : Equatable {
subscript(i: Int) -> Element { subscript(i: Int) -> Element {
get { get {
return elementStorage[i] return baseAddress[i]
} }
nonmutating set(newValue) { nonmutating set(newValue) {
elementStorage[i] = newValue baseAddress[i] = newValue
} }
} }

View File

@@ -59,7 +59,7 @@ class _NSSwiftArray : HeapBufferStorageBase, _CocoaArrayType {
if _fastPath(buffer.value.elementTypeIsBridgedVerbatim) { if _fastPath(buffer.value.elementTypeIsBridgedVerbatim) {
dst.initializeFrom( dst.initializeFrom(
UnsafeMutablePointer(buffer.elementStorage + range.location), UnsafeMutablePointer(buffer.baseAddress + range.location),
count: range.length) count: range.length)
} }
@@ -88,7 +88,7 @@ class _NSSwiftArray : HeapBufferStorageBase, _CocoaArrayType {
return 0 return 0
} }
enumerationState.mutationsPtr = _fastEnumerationStorageMutationsPtr enumerationState.mutationsPtr = _fastEnumerationStorageMutationsPtr
enumerationState.itemsPtr = reinterpretCast(buffer.elementStorage) enumerationState.itemsPtr = reinterpretCast(buffer.baseAddress)
enumerationState.state = 1 enumerationState.state = 1
state.memory = enumerationState state.memory = enumerationState
return buffer.value.count return buffer.value.count

View File

@@ -49,9 +49,9 @@ func _convertMutableArrayToPointerArgument<
// Call reserve to force contiguous storage. // Call reserve to force contiguous storage.
a.reserveCapacity(0) a.reserveCapacity(0)
_debugPrecondition(a._elementStorageIfContiguous != nil || a.count == 0) _debugPrecondition(a._baseAddressIfContiguous != nil || a.count == 0)
return (a._owner, ToPointer(a._elementStorageIfContiguous.value)) return (a._owner, ToPointer(a._baseAddressIfContiguous.value))
} }
/// Derive a pointer argument from a value array parameter. /// Derive a pointer argument from a value array parameter.

View File

@@ -35,7 +35,7 @@ struct _SliceBuffer<T> : _ArrayBufferType {
public public
init(_ buffer: NativeBuffer) { init(_ buffer: NativeBuffer) {
owner = buffer._storage owner = buffer._storage
start = buffer.elementStorage start = buffer.baseAddress
_countAndFlags = (UInt(buffer.count) << 1) | (owner ? 1 : 0) _countAndFlags = (UInt(buffer.count) << 1) | (owner ? 1 : 0)
_invariantCheck() _invariantCheck()
} }
@@ -83,7 +83,7 @@ struct _SliceBuffer<T> : _ArrayBufferType {
_sanityCheck(_hasNativeBuffer && isUniquelyReferenced()) _sanityCheck(_hasNativeBuffer && isUniquelyReferenced())
var native = reinterpretCast(owner) as NativeBuffer var native = reinterpretCast(owner) as NativeBuffer
let offset = start - native.elementStorage let offset = start - native.baseAddress
let eraseCount = countElements(subRange) let eraseCount = countElements(subRange)
let growth = insertCount - eraseCount let growth = insertCount - eraseCount
@@ -140,7 +140,7 @@ struct _SliceBuffer<T> : _ArrayBufferType {
// function isn't called for subscripting, this won't slow // function isn't called for subscripting, this won't slow
// down that case. // down that case.
var backing = reinterpretCast(owner) as NativeBuffer var backing = reinterpretCast(owner) as NativeBuffer
let offset = self.elementStorage - backing.elementStorage let offset = self.baseAddress - backing.baseAddress
let backingCount = backing.count let backingCount = backing.count
let myCount = count let myCount = count
@@ -163,7 +163,7 @@ struct _SliceBuffer<T> : _ArrayBufferType {
} }
/// If this buffer is backed by a _ContiguousArrayBuffer, return it. /// If this buffer is backed by a _ContiguousArrayBuffer, return it.
/// Otherwise, return nil. Note: the result's elementStorage may /// Otherwise, return nil. Note: the result's baseAddress may
/// not match ours, since we are a _SliceBuffer. /// not match ours, since we are a _SliceBuffer.
public public
func requestNativeBuffer() -> _ContiguousArrayBuffer<Element>? { func requestNativeBuffer() -> _ContiguousArrayBuffer<Element>? {
@@ -189,7 +189,7 @@ struct _SliceBuffer<T> : _ArrayBufferType {
} }
public public
var elementStorage: UnsafeMutablePointer<T> { var baseAddress: UnsafeMutablePointer<T> {
return start return start
} }
@@ -223,7 +223,7 @@ struct _SliceBuffer<T> : _ArrayBufferType {
return count return count
} }
let n = nativeBuffer let n = nativeBuffer
if (count + start) == (n.count + n.elementStorage) { if (count + start) == (n.count + n.baseAddress) {
return count + (n.capacity - n.count) return count + (n.capacity - n.count)
} }
return count return count

View File

@@ -102,7 +102,7 @@ public struct _StringBuffer {
return (result, hadError) return (result, hadError)
} }
else { else {
var p = result._storage.elementStorage var p = result._storage.baseAddress
let hadError = transcode(encoding, UTF16.self, input.generate(), let hadError = transcode(encoding, UTF16.self, input.generate(),
SinkOf { SinkOf {
(p++).memory = $0 (p++).memory = $0
@@ -117,7 +117,7 @@ public struct _StringBuffer {
/// a pointer to the start of this buffer's data area /// a pointer to the start of this buffer's data area
public var start: UnsafeMutablePointer<RawByte> { public var start: UnsafeMutablePointer<RawByte> {
return UnsafeMutablePointer(_storage.elementStorage) return UnsafeMutablePointer(_storage.baseAddress)
} }
/// a past-the-end pointer for this buffer's stored data /// a past-the-end pointer for this buffer's stored data

View File

@@ -66,7 +66,7 @@ public struct Unsafe${Mutable}BufferPointer<T> : ${Mutable}CollectionType {
return UnsafeBufferPointerGenerator(position: _position, end: _end) return UnsafeBufferPointerGenerator(position: _position, end: _end)
} }
public var elementStorage: Unsafe${Mutable}Pointer<T> { public var baseAddress: Unsafe${Mutable}Pointer<T> {
return _position return _position
} }

View File

@@ -51,7 +51,7 @@ public func _encodeBitsAsWords<T: CVarArgType>(x: T) -> [Word] {
count: (sizeof(T.self) + sizeof(Word.self) - 1) / sizeof(Word.self), count: (sizeof(T.self) + sizeof(Word.self) - 1) / sizeof(Word.self),
repeatedValue: 0) repeatedValue: 0)
var tmp = x var tmp = x
_memcpy(dest: UnsafeMutablePointer(result._elementStorageIfContiguous), _memcpy(dest: UnsafeMutablePointer(result._baseAddressIfContiguous),
src: UnsafeMutablePointer(Builtin.addressof(&tmp)), src: UnsafeMutablePointer(Builtin.addressof(&tmp)),
size: UInt(sizeof(T.self))) size: UInt(sizeof(T.self)))
return result return result
@@ -155,7 +155,7 @@ class VaListBuilder {
func va_list() -> CVaListPointer { func va_list() -> CVaListPointer {
return CVaListPointer( return CVaListPointer(
fromUnsafeMutablePointer: UnsafeMutablePointer<Void>( fromUnsafeMutablePointer: UnsafeMutablePointer<Void>(
storage._elementStorageIfContiguous)) storage._baseAddressIfContiguous))
} }
var storage = [Word]() var storage = [Word]()
@@ -202,9 +202,9 @@ class VaListBuilder {
} }
func va_list() -> CVaListPointer { func va_list() -> CVaListPointer {
header.reg_save_area = storage._elementStorageIfContiguous header.reg_save_area = storage._baseAddressIfContiguous
header.overflow_arg_area header.overflow_arg_area
= storage._elementStorageIfContiguous + _x86_64RegisterSaveWords = storage._baseAddressIfContiguous + _x86_64RegisterSaveWords
return CVaListPointer( return CVaListPointer(
fromUnsafeMutablePointer: UnsafeMutablePointer<Void>( fromUnsafeMutablePointer: UnsafeMutablePointer<Void>(
Builtin.addressof(&self.header))) Builtin.addressof(&self.header)))

View File

@@ -547,7 +547,7 @@ extension NSArray : ArrayLiteralConvertible {
// + (instancetype)arrayWithObjects:(const id [])objects count:(NSUInteger)cnt; // + (instancetype)arrayWithObjects:(const id [])objects count:(NSUInteger)cnt;
let x = _extractOrCopyToNativeArrayBuffer(elements._buffer) let x = _extractOrCopyToNativeArrayBuffer(elements._buffer)
let result = self( let result = self(
objects: UnsafeMutablePointer(x.elementStorage), count: x.count) objects: UnsafeMutablePointer(x.baseAddress), count: x.count)
_fixLifetime(x) _fixLifetime(x)
return result return result
} }
@@ -800,9 +800,9 @@ final public class NSFastGenerator : GeneratorType {
func refresh() { func refresh() {
n = 0 n = 0
count = enumerable.countByEnumeratingWithState( count = enumerable.countByEnumeratingWithState(
state._elementStorageIfContiguous, state._baseAddressIfContiguous,
objects: AutoreleasingUnsafeMutablePointer( objects: AutoreleasingUnsafeMutablePointer(
objects._elementStorageIfContiguous), objects._baseAddressIfContiguous),
count: STACK_BUF_SIZE) count: STACK_BUF_SIZE)
} }
@@ -1092,7 +1092,7 @@ extension NSArray {
// @objc(initWithObjects:count:) // @objc(initWithObjects:count:)
// init(withObjects objects: UnsafePointer<AnyObject?>, // init(withObjects objects: UnsafePointer<AnyObject?>,
// count cnt: Int) // count cnt: Int)
self.init(objects: UnsafeMutablePointer(x.elementStorage), count: x.count) self.init(objects: UnsafeMutablePointer(x.baseAddress), count: x.count)
_fixLifetime(x) _fixLifetime(x)
} }
} }
@@ -1123,7 +1123,7 @@ extension NSOrderedSet {
// @objc(initWithObjects:count:) // @objc(initWithObjects:count:)
// init(withObjects objects: UnsafePointer<AnyObject?>, // init(withObjects objects: UnsafePointer<AnyObject?>,
// count cnt: Int) // count cnt: Int)
self.init(objects: UnsafeMutablePointer(x.elementStorage), count: x.count) self.init(objects: UnsafeMutablePointer(x.baseAddress), count: x.count)
_fixLifetime(x) _fixLifetime(x)
} }
} }
@@ -1137,7 +1137,7 @@ extension NSSet {
// Imported as: // Imported as:
// @objc(initWithObjects:count:) // @objc(initWithObjects:count:)
// init(withObjects objects: UnsafePointer<AnyObject?>, count cnt: Int) // init(withObjects objects: UnsafePointer<AnyObject?>, count cnt: Int)
self.init(objects: UnsafeMutablePointer(x.elementStorage), count: x.count) self.init(objects: UnsafeMutablePointer(x.baseAddress), count: x.count)
_fixLifetime(x) _fixLifetime(x)
} }
} }

View File

@@ -106,7 +106,7 @@ class FixedSizedRefArrayOfOptionalStorage<T> : HeapBufferStorage<Int, T?> {
deinit { deinit {
let buffer = Buffer(self) let buffer = Buffer(self)
for i in 0..<buffer.value { for i in 0..<buffer.value {
(buffer.elementStorage + i).destroy() (buffer.baseAddress + i).destroy()
} }
} }
override func __getInstanceSizeAndAlignMask() -> (Int,Int) { override func __getInstanceSizeAndAlignMask() -> (Int,Int) {
@@ -123,7 +123,7 @@ struct FixedSizedRefArrayOfOptional<T>
{ {
buffer = Storage.Buffer(Storage.self, capacity, capacity) buffer = Storage.Buffer(Storage.self, capacity, capacity)
for var i = 0; i < capacity; ++i { for var i = 0; i < capacity; ++i {
(buffer.elementStorage + i).initialize(.None) (buffer.baseAddress + i).initialize(.None)
} }
buffer.value = capacity buffer.value = capacity
@@ -132,12 +132,12 @@ struct FixedSizedRefArrayOfOptional<T>
subscript(i: Int) -> T? { subscript(i: Int) -> T? {
get { get {
assert(i >= 0 && i < buffer.value) assert(i >= 0 && i < buffer.value)
return (buffer.elementStorage + i).memory return (buffer.baseAddress + i).memory
} }
nonmutating nonmutating
set { set {
assert(i >= 0 && i < buffer.value) assert(i >= 0 && i < buffer.value)
(buffer.elementStorage + i).memory = newValue (buffer.baseAddress + i).memory = newValue
} }
} }

View File

@@ -1592,7 +1592,7 @@ func slurpFastEnumeration(
var pairs = Array<(Int, Int)>() var pairs = Array<(Int, Int)>()
while true { while true {
var returnedCount = fe.countByEnumeratingWithState( var returnedCount = fe.countByEnumeratingWithState(
&state, objects: AutoreleasingUnsafeMutablePointer(stackBuf.elementStorage), &state, objects: AutoreleasingUnsafeMutablePointer(stackBuf.baseAddress),
count: stackBufLength) count: stackBufLength)
assert(state.state != 0) assert(state.state != 0)
assert(state.mutationsPtr != .null()) assert(state.mutationsPtr != .null())
@@ -1609,7 +1609,7 @@ func slurpFastEnumeration(
for i in 0..<3 { for i in 0..<3 {
let returnedCount = fe.countByEnumeratingWithState( let returnedCount = fe.countByEnumeratingWithState(
&state, objects: AutoreleasingUnsafeMutablePointer(stackBuf.elementStorage), &state, objects: AutoreleasingUnsafeMutablePointer(stackBuf.baseAddress),
count: stackBufLength) count: stackBufLength)
assert(returnedCount == 0) assert(returnedCount == 0)
} }
@@ -1760,7 +1760,7 @@ class ParallelArrayDictionary : NSDictionary {
var theState = state.memory var theState = state.memory
if theState.state == 0 { if theState.state == 0 {
theState.state = 1 theState.state = 1
theState.itemsPtr = AutoreleasingUnsafeMutablePointer(keys._elementStorageIfContiguous) theState.itemsPtr = AutoreleasingUnsafeMutablePointer(keys._baseAddressIfContiguous)
theState.mutationsPtr = _fastEnumerationStorageMutationsPtr theState.mutationsPtr = _fastEnumerationStorageMutationsPtr
state.memory = theState state.memory = theState
return 4 return 4

View File

@@ -18,7 +18,7 @@ a.value.name = "DaveA"
a.value.locations.append("Princeton") a.value.locations.append("Princeton")
a.value.locations.append("San Jose") a.value.locations.append("San Jose")
for x in 0..<10 { for x in 0..<10 {
(a.elementStorage + x).initialize(x) (a.baseAddress + x).initialize(x)
} }
println("buffer has storage: \(a.storage.boolValue)") println("buffer has storage: \(a.storage.boolValue)")
@@ -55,7 +55,7 @@ println("locations[1]=\(a.value.locations[1])")
// CHECK-NEXT: locations[1]=San Jose // CHECK-NEXT: locations[1]=San Jose
for x in 0..<10 { for x in 0..<10 {
print(a.elementStorage[x]) print(a.baseAddress[x])
} }
println("") println("")
// CHECK-NEXT: 0123456789 // CHECK-NEXT: 0123456789

View File

@@ -73,7 +73,7 @@ func printSequence<T: SequenceType>(x: T) {
} }
func bufferID<T : ArrayType>(x: T) -> Int { func bufferID<T : ArrayType>(x: T) -> Int {
return reinterpretCast(x._buffer.elementStorage) as Int return reinterpretCast(x._buffer.baseAddress) as Int
} }
func checkReallocation<T : ArrayType>( func checkReallocation<T : ArrayType>(

View File

@@ -261,11 +261,11 @@ func additionalUtf16Tests() {
u16.withUnsafeMutableBufferPointer { u16.withUnsafeMutableBufferPointer {
(u16)->() in (u16)->() in
let p16 = u16.elementStorage let p16 = u16.baseAddress
u8.withUnsafeMutableBufferPointer { u8.withUnsafeMutableBufferPointer {
(u8)->() in (u8)->() in
let p8 = u8.elementStorage let p8 = u8.baseAddress
// CHECK-NEXT: [ 0, 1, 2, 9, 10, 11 ] // CHECK-NEXT: [ 0, 1, 2, 9, 10, 11 ]
UTF16.copy(p8, destination: p16, count: 3) UTF16.copy(p8, destination: p16, count: 3)