Skip to content

Commit 9b5a7d3

Browse files
authored
Merge pull request #2704 from valeriyvan/RedundantZeroingString
Removes redundant buffer zeroing from String
2 parents 9846011 + 5ce4f68 commit 9b5a7d3

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

Sources/Foundation/String.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,11 +56,11 @@ extension String: _ObjectiveCBridgeable {
5656
result = String(decoding: UnsafeBufferPointer(start: conststr._ptr, count: Int(conststr._length)), as: UTF8.self)
5757
} else {
5858
let len = source.length
59-
var characters = [unichar](repeating: 0, count: len)
60-
result = characters.withUnsafeMutableBufferPointer() { (buffer: inout UnsafeMutableBufferPointer<unichar>) -> String? in
61-
source.getCharacters(buffer.baseAddress!, range: NSRange(location: 0, length: len))
62-
return String(decoding: buffer, as: UTF16.self)
59+
let characters = [unichar](unsafeUninitializedCapacity: len) { buf, initializedCount in
60+
source.getCharacters(buf.baseAddress!, range: NSRange(location: 0, length: len))
61+
initializedCount = len
6362
}
63+
result = String(decoding: characters, as: UTF16.self)
6464
}
6565
return result != nil
6666
}

0 commit comments

Comments
 (0)