Skip to content

Commit 820b2c6

Browse files
authored
Merge pull request #34879 from Lukasa/cb-simpler-buffer-initializer
[stdlib] Simplify buffer pointer initialization.
2 parents 4bbdc39 + 300f4da commit 820b2c6

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

stdlib/public/core/UnsafeBufferPointer.swift.gyb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -499,7 +499,8 @@ extension Unsafe${Mutable}BufferPointer {
499499
@inlinable // unsafe-performance
500500
public init(rebasing slice: Slice<UnsafeBufferPointer<Element>>) {
501501
let base = slice.base.baseAddress?.advanced(by: slice.startIndex)
502-
self.init(start: base, count: slice.count)
502+
let count = slice.endIndex &- slice.startIndex
503+
self.init(start: base, count: count)
503504
}
504505

505506
% end
@@ -526,7 +527,8 @@ extension Unsafe${Mutable}BufferPointer {
526527
@inlinable // unsafe-performance
527528
public init(rebasing slice: Slice<UnsafeMutableBufferPointer<Element>>) {
528529
let base = slice.base.baseAddress?.advanced(by: slice.startIndex)
529-
self.init(start: base, count: slice.count)
530+
let count = slice.endIndex &- slice.startIndex
531+
self.init(start: base, count: count)
530532
}
531533

532534
/// Deallocates the memory block previously allocated at this buffer pointer’s

stdlib/public/core/UnsafeRawBufferPointer.swift.gyb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -512,7 +512,8 @@ extension Unsafe${Mutable}RawBufferPointer {
512512
@inlinable
513513
public init(rebasing slice: Slice<UnsafeRawBufferPointer>) {
514514
let base = slice.base.baseAddress?.advanced(by: slice.startIndex)
515-
self.init(start: base, count: slice.count)
515+
let count = slice.endIndex &- slice.startIndex
516+
self.init(start: base, count: count)
516517
}
517518
% end # !mutable
518519

@@ -539,7 +540,8 @@ extension Unsafe${Mutable}RawBufferPointer {
539540
@inlinable
540541
public init(rebasing slice: Slice<UnsafeMutableRawBufferPointer>) {
541542
let base = slice.base.baseAddress?.advanced(by: slice.startIndex)
542-
self.init(start: base, count: slice.count)
543+
let count = slice.endIndex &- slice.startIndex
544+
self.init(start: base, count: count)
543545
}
544546

545547
/// A pointer to the first byte of the buffer.

0 commit comments

Comments
 (0)