Skip to content

Commit

Permalink
Eliminates redundant array zeroing in private func _scanDoublesFromSt…
Browse files Browse the repository at this point in the history
…ring in NSGeometry.swift
  • Loading branch information
valeriyvan committed Apr 24, 2020
1 parent e68dc07 commit f20361c
Showing 1 changed file with 14 additions and 11 deletions.
25 changes: 14 additions & 11 deletions Sources/Foundation/NSGeometry.swift
Expand Up @@ -1031,19 +1031,22 @@ private func _scanDoublesFromString(_ aString: String, number: Int) -> [Double]
let scanner = Scanner(string: aString)
var digitSet = CharacterSet.decimalDigits
digitSet.insert(charactersIn: "-")
var result = [Double](repeating: 0.0, count: number)
var index = 0

let _ = scanner.scanUpToCharacters(from: digitSet)
while !scanner.isAtEnd && index < number {
if let num = scanner.scanDouble() {
result[index] = num
}
return [Double](unsafeUninitializedCapacity: number) { buffer, initializedCount in
var index = 0
let _ = scanner.scanUpToCharacters(from: digitSet)
index += 1
while !scanner.isAtEnd && index < number {
if let num = scanner.scanDouble() {
buffer[index] = num
}
let _ = scanner.scanUpToCharacters(from: digitSet)
index += 1
}
while index < number {
buffer[index] = 0.0
index += 1
}
initializedCount = number
}

return result
}

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

0 comments on commit f20361c

Please sign in to comment.