Skip to content

Commit f20361c

Browse files
committed
Eliminates redundant array zeroing in private func _scanDoublesFromString in NSGeometry.swift
1 parent e68dc07 commit f20361c

File tree

1 file changed

+14
-11
lines changed

1 file changed

+14
-11
lines changed

Sources/Foundation/NSGeometry.swift

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1031,19 +1031,22 @@ private func _scanDoublesFromString(_ aString: String, number: Int) -> [Double]
10311031
let scanner = Scanner(string: aString)
10321032
var digitSet = CharacterSet.decimalDigits
10331033
digitSet.insert(charactersIn: "-")
1034-
var result = [Double](repeating: 0.0, count: number)
1035-
var index = 0
1036-
1037-
let _ = scanner.scanUpToCharacters(from: digitSet)
1038-
while !scanner.isAtEnd && index < number {
1039-
if let num = scanner.scanDouble() {
1040-
result[index] = num
1041-
}
1034+
return [Double](unsafeUninitializedCapacity: number) { buffer, initializedCount in
1035+
var index = 0
10421036
let _ = scanner.scanUpToCharacters(from: digitSet)
1043-
index += 1
1037+
while !scanner.isAtEnd && index < number {
1038+
if let num = scanner.scanDouble() {
1039+
buffer[index] = num
1040+
}
1041+
let _ = scanner.scanUpToCharacters(from: digitSet)
1042+
index += 1
1043+
}
1044+
while index < number {
1045+
buffer[index] = 0.0
1046+
index += 1
1047+
}
1048+
initializedCount = number
10441049
}
1045-
1046-
return result
10471050
}
10481051

10491052
public func NSPointFromString(_ aString: String) -> NSPoint {

0 commit comments

Comments
 (0)