Skip to content

Commit 051d0b6

Browse files
authored
Override -_fastUTF8StringContents:utf8Length: to give bridged Strings O(1) access to their UTF8 contents (swiftlang#83499)
Fixes rdar://157337605
1 parent 4de714f commit 051d0b6

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

stdlib/public/core/StringStorageBridge.swift

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,16 @@ extension __StringStorage {
228228
}
229229
return nil
230230
}
231+
232+
@objc(_fastUTF8StringContents:utf8Length:)
233+
@_effects(readonly)
234+
final internal func _fastUTF8StringContents(
235+
_ requiresNulTermination: Int8,
236+
_ outUTF8Length: UnsafeMutablePointer<UInt>
237+
) -> UnsafePointer<UInt8>? {
238+
outUTF8Length.pointee = UInt(count)
239+
return unsafe start
240+
}
231241

232242
@objc(UTF8String)
233243
@_effects(readonly)
@@ -346,6 +356,16 @@ extension __SharedStringStorage {
346356
}
347357
return nil
348358
}
359+
360+
@objc(_fastUTF8StringContents:utf8Length:)
361+
@_effects(readonly)
362+
final internal func _fastUTF8StringContents(
363+
_ requiresNulTermination: Int8,
364+
_ outUTF8Length: UnsafeMutablePointer<UInt>
365+
) -> UnsafePointer<UInt8>? {
366+
outUTF8Length.pointee = UInt(count)
367+
return unsafe start
368+
}
349369

350370
@objc(UTF8String)
351371
@_effects(readonly)

0 commit comments

Comments
 (0)