@@ -183,7 +183,8 @@ final class _ContiguousArrayStorage<Element> : _ContiguousArrayStorage1 {
183
183
}
184
184
185
185
@_fixed_layout
186
- public struct _ContiguousArrayBuffer < Element> : _ArrayBufferProtocol {
186
+ public // @testable
187
+ struct _ContiguousArrayBuffer < Element> : _ArrayBufferProtocol {
187
188
188
189
/// Make a buffer with uninitialized elements. After using this
189
190
/// method, you must either initialize the `count` elements at the
@@ -539,15 +540,14 @@ extension _ContiguousArrayBuffer : RandomAccessCollection {
539
540
}
540
541
541
542
extension Sequence {
542
- public func _copyToNativeArrayBuffer( )
543
- -> _ContiguousArrayBuffer < Iterator . Element > {
544
- return _copySequenceToNativeArrayBuffer ( self )
543
+ public func _copyToContiguousArray( ) -> ContiguousArray < Iterator . Element > {
544
+ return _copySequenceToContiguousArray ( self )
545
545
}
546
546
}
547
547
548
- internal func _copySequenceToNativeArrayBuffer <
548
+ internal func _copySequenceToContiguousArray <
549
549
S : Sequence
550
- > ( _ source: S ) -> _ContiguousArrayBuffer < S . Iterator . Element > {
550
+ > ( _ source: S ) -> ContiguousArray < S . Iterator . Element > {
551
551
let initialCapacity = source. underestimatedCount
552
552
var builder =
553
553
_UnsafePartiallyInitializedContiguousArrayBuffer < S . Iterator . Element > (
@@ -571,33 +571,32 @@ internal func _copySequenceToNativeArrayBuffer<
571
571
}
572
572
573
573
extension Collection {
574
- public func _copyToNativeArrayBuffer(
575
- ) -> _ContiguousArrayBuffer < Iterator . Element > {
576
- return _copyCollectionToNativeArrayBuffer ( self )
574
+ public func _copyToContiguousArray( ) -> ContiguousArray < Iterator . Element > {
575
+ return _copyCollectionToContiguousArray ( self )
577
576
}
578
577
}
579
578
580
579
extension _ContiguousArrayBuffer {
581
- public func _copyToNativeArrayBuffer ( ) -> _ContiguousArrayBuffer < Element > {
582
- return self
580
+ public func _copyToContiguousArray ( ) -> ContiguousArray < Element > {
581
+ return ContiguousArray ( _buffer : self )
583
582
}
584
583
}
585
584
586
- /// This is a fast implementation of _copyToNativeArrayBuffer () for collections.
585
+ /// This is a fast implementation of _copyToContiguousArray () for collections.
587
586
///
588
587
/// It avoids the extra retain, release overhead from storing the
589
588
/// ContiguousArrayBuffer into
590
589
/// _UnsafePartiallyInitializedContiguousArrayBuffer. Since we do not support
591
590
/// ARC loops, the extra retain, release overhead cannot be eliminated which
592
591
/// makes assigning ranges very slow. Once this has been implemented, this code
593
592
/// should be changed to use _UnsafePartiallyInitializedContiguousArrayBuffer.
594
- internal func _copyCollectionToNativeArrayBuffer <
593
+ internal func _copyCollectionToContiguousArray <
595
594
C : Collection
596
- > ( _ source: C ) -> _ContiguousArrayBuffer < C . Iterator . Element >
595
+ > ( _ source: C ) -> ContiguousArray < C . Iterator . Element >
597
596
{
598
597
let count : Int = numericCast ( source. count)
599
598
if count == 0 {
600
- return _ContiguousArrayBuffer ( )
599
+ return ContiguousArray ( )
601
600
}
602
601
603
602
let result = _ContiguousArrayBuffer < C . Iterator . Element > (
@@ -613,7 +612,7 @@ internal func _copyCollectionToNativeArrayBuffer<
613
612
p += 1
614
613
}
615
614
_expectEnd ( i, source)
616
- return result
615
+ return ContiguousArray ( _buffer : result)
617
616
}
618
617
619
618
/// A "builder" interface for initializing array buffers.
@@ -678,7 +677,7 @@ internal struct _UnsafePartiallyInitializedContiguousArrayBuffer<Element> {
678
677
/// Returns the fully-initialized buffer. `self` is reset to contain an
679
678
/// empty buffer and cannot be used afterward.
680
679
@inline ( __always) // For performance reasons.
681
- mutating func finish( ) -> _ContiguousArrayBuffer < Element > {
680
+ mutating func finish( ) -> ContiguousArray < Element > {
682
681
// Adjust the initialized count of the buffer.
683
682
result. count = result. capacity - remainingCapacity
684
683
@@ -692,12 +691,12 @@ internal struct _UnsafePartiallyInitializedContiguousArrayBuffer<Element> {
692
691
/// Returns the fully-initialized buffer. `self` is reset to contain an
693
692
/// empty buffer and cannot be used afterward.
694
693
@inline ( __always) // For performance reasons.
695
- mutating func finishWithOriginalCount( ) -> _ContiguousArrayBuffer < Element > {
694
+ mutating func finishWithOriginalCount( ) -> ContiguousArray < Element > {
696
695
_sanityCheck ( remainingCapacity == result. capacity - result. count,
697
696
" _UnsafePartiallyInitializedContiguousArrayBuffer has incorrect count " )
698
697
var finalResult = _ContiguousArrayBuffer < Element > ( )
699
698
swap ( & finalResult, & result)
700
699
remainingCapacity = 0
701
- return finalResult
700
+ return ContiguousArray ( _buffer : finalResult)
702
701
}
703
702
}
0 commit comments