diff --git a/stdlib/public/core/Collection.swift b/stdlib/public/core/Collection.swift index ea57e573f6370..f883df1a83d7b 100644 --- a/stdlib/public/core/Collection.swift +++ b/stdlib/public/core/Collection.swift @@ -1325,17 +1325,31 @@ extension Collection { return [] } - var result = ContiguousArray() - result.reserveCapacity(n) + let result: ContiguousArray + var p: UnsafeMutablePointer + (result, p) = ContiguousArray._allocateUninitialized(n) var i = self.startIndex + var initializedElements = 0 - for _ in 0.. T ) rethrows -> [T] { let initialCapacity = underestimatedCount - var result = ContiguousArray() - result.reserveCapacity(initialCapacity) + var result: ContiguousArray + var p: UnsafeMutablePointer + (result, p) = ContiguousArray._allocateUninitialized(initialCapacity) var iterator = self.makeIterator() - // Add elements up to the initial capacity without checking for regrowth. - for _ in 0..