Skip to content

Commit 95906f2

Browse files
authored
Merge pull request #1833 from compnerd/llp64
Foundation: use `numericCast` in places for LLP64
2 parents 18dad29 + 619d046 commit 95906f2

File tree

6 files changed

+31
-20
lines changed

6 files changed

+31
-20
lines changed

Foundation/FileManager.swift

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -775,7 +775,7 @@ open class FileManager : NSObject {
775775
var bytesRead = 0
776776

777777
repeat {
778-
bytesRead = read(fd, buffer, bytesToRead)
778+
bytesRead = numericCast(read(fd, buffer, numericCast(bytesToRead)))
779779
} while bytesRead < 0 && errno == EINTR
780780
guard bytesRead >= 0 else {
781781
throw _NSErrorWithErrno(errno, reading: true, path: filename)
@@ -789,7 +789,9 @@ open class FileManager : NSObject {
789789
var written = 0
790790
let bytesLeftToWrite = bytesToWrite - bytesWritten
791791
repeat {
792-
written = write(fd, buffer.advanced(by: bytesWritten), bytesLeftToWrite)
792+
written =
793+
numericCast(write(fd, buffer.advanced(by: bytesWritten),
794+
numericCast(bytesLeftToWrite)))
793795
} while written < 0 && errno == EINTR
794796
guard written >= 0 else {
795797
throw _NSErrorWithErrno(errno, reading: false, path: filename)

Foundation/NSCFString.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,8 @@ internal func _CFSwiftStringFastContents(_ str: AnyObject) -> UnsafePointer<UniC
213213
}
214214

215215
internal func _CFSwiftStringGetCString(_ str: AnyObject, buffer: UnsafeMutablePointer<Int8>, maxLength: Int, encoding: CFStringEncoding) -> Bool {
216-
return (str as! NSString).getCString(buffer, maxLength: maxLength, encoding: CFStringConvertEncodingToNSStringEncoding(encoding))
216+
return (str as! NSString).getCString(buffer, maxLength: maxLength,
217+
encoding: numericCast(CFStringConvertEncodingToNSStringEncoding(encoding)))
217218
}
218219

219220
internal func _CFSwiftStringIsUnicode(_ str: AnyObject) -> Bool {

Foundation/NSCalendar.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1226,7 +1226,7 @@ open class NSCalendar : NSObject, NSCopying, NSSecureCoding {
12261226
var tempComp = components
12271227
tempComp.isLeapMonth = comp.isLeapMonth
12281228
if let nanosecond = comp.value(for: .nanosecond) {
1229-
if labs(nanosecond - tempComp.value(for: .nanosecond)!) > 500 {
1229+
if labs(numericCast(nanosecond - tempComp.value(for: .nanosecond)!)) > 500 {
12301230
return false
12311231
} else {
12321232
compareComp.nanosecond = 0

Foundation/NSString.swift

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,10 @@ open class NSString : NSObject, NSCopying, NSMutableCopying, NSSecureCoding, NSC
285285
}
286286

287287
public convenience init?(cString nullTerminatedCString: UnsafePointer<Int8>, encoding: UInt) {
288-
guard let str = CFStringCreateWithCString(kCFAllocatorSystemDefault, nullTerminatedCString, CFStringConvertNSStringEncodingToEncoding(encoding)) else {
288+
guard let str =
289+
CFStringCreateWithCString(kCFAllocatorSystemDefault,
290+
nullTerminatedCString,
291+
CFStringConvertNSStringEncodingToEncoding(numericCast(encoding))) else {
289292
return nil
290293
}
291294
self.init(string: str._swiftObject)
@@ -801,7 +804,7 @@ extension NSString {
801804
let len = length
802805
var reqSize = 0
803806

804-
let cfStringEncoding = CFStringConvertNSStringEncodingToEncoding(encoding)
807+
let cfStringEncoding = CFStringConvertNSStringEncodingToEncoding(numericCast(encoding))
805808
if !CFStringIsEncodingAvailable(cfStringEncoding) {
806809
return nil
807810
}
@@ -834,7 +837,9 @@ extension NSString {
834837
if encoding == String.Encoding.unicode.rawValue || encoding == String.Encoding.nonLossyASCII.rawValue || encoding == String.Encoding.utf8.rawValue {
835838
return true
836839
}
837-
return __CFStringEncodeByteStream(_cfObject, 0, length, false, CFStringConvertNSStringEncodingToEncoding(encoding), 0, nil, 0, nil) == length
840+
return __CFStringEncodeByteStream(_cfObject, 0, length, false,
841+
CFStringConvertNSStringEncodingToEncoding(numericCast(encoding)),
842+
0, nil, 0, nil) == length
838843
}
839844

840845
public func cString(using encoding: UInt) -> UnsafePointer<Int8>? {
@@ -864,7 +869,8 @@ extension NSString {
864869
public func getBytes(_ buffer: UnsafeMutableRawPointer?, maxLength maxBufferCount: Int, usedLength usedBufferCount: UnsafeMutablePointer<Int>?, encoding: UInt, options: EncodingConversionOptions = [], range: NSRange, remaining leftover: NSRangePointer?) -> Bool {
865870
var totalBytesWritten = 0
866871
var numCharsProcessed = 0
867-
let cfStringEncoding = CFStringConvertNSStringEncodingToEncoding(encoding)
872+
let cfStringEncoding =
873+
CFStringConvertNSStringEncodingToEncoding(numericCast(encoding))
868874
var result = true
869875
if length > 0 {
870876
if CFStringIsEncodingAvailable(cfStringEncoding) {
@@ -886,15 +892,15 @@ extension NSString {
886892
}
887893

888894
public func maximumLengthOfBytes(using enc: UInt) -> Int {
889-
let cfEnc = CFStringConvertNSStringEncodingToEncoding(enc)
895+
let cfEnc = CFStringConvertNSStringEncodingToEncoding(numericCast(enc))
890896
let result = CFStringGetMaximumSizeForEncoding(length, cfEnc)
891897
return result == kCFNotFound ? 0 : result
892898
}
893899

894900
public func lengthOfBytes(using enc: UInt) -> Int {
895901
let len = length
896902
var numBytes: CFIndex = 0
897-
let cfEnc = CFStringConvertNSStringEncodingToEncoding(enc)
903+
let cfEnc = CFStringConvertNSStringEncodingToEncoding(numericCast(enc))
898904
let convertedLen = __CFStringEncodeByteStream(_cfObject, 0, len, false, cfEnc, 0, nil, 0, &numBytes)
899905
return convertedLen != len ? 0 : numBytes
900906
}
@@ -916,7 +922,8 @@ extension NSString {
916922

917923
numEncodings -= 1
918924
while numEncodings >= 0 {
919-
theEncodingList.advanced(by: numEncodings).pointee = CFStringConvertEncodingToNSStringEncoding(cfEncodings.advanced(by: numEncodings).pointee)
925+
theEncodingList.advanced(by: numEncodings).pointee =
926+
numericCast(CFStringConvertEncodingToNSStringEncoding(cfEncodings.advanced(by: numEncodings).pointee))
920927
numEncodings -= 1
921928
}
922929

@@ -927,7 +934,7 @@ extension NSString {
927934
}
928935

929936
open class func localizedName(of encoding: UInt) -> String {
930-
if let theString = CFStringGetNameOfEncoding(CFStringConvertNSStringEncodingToEncoding(encoding)) {
937+
if let theString = CFStringGetNameOfEncoding(CFStringConvertNSStringEncodingToEncoding(numericCast(encoding))) {
931938
// TODO: read the localized version from the Foundation "bundle"
932939
return theString._swiftObject
933940
}
@@ -936,7 +943,7 @@ extension NSString {
936943
}
937944

938945
open class var defaultCStringEncoding: UInt {
939-
return CFStringConvertEncodingToNSStringEncoding(CFStringGetSystemEncoding())
946+
return numericCast(CFStringConvertEncodingToNSStringEncoding(CFStringGetSystemEncoding()))
940947
}
941948

942949
open var decomposedStringWithCanonicalMapping: String {
@@ -1187,7 +1194,8 @@ extension NSString {
11871194
self.init("")
11881195
} else {
11891196
guard let cf = data.withUnsafeBytes({ (bytes: UnsafePointer<UInt8>) -> CFString? in
1190-
return CFStringCreateWithBytes(kCFAllocatorDefault, bytes, data.count, CFStringConvertNSStringEncodingToEncoding(encoding), true)
1197+
return CFStringCreateWithBytes(kCFAllocatorDefault, bytes, data.count,
1198+
CFStringConvertNSStringEncodingToEncoding(numericCast(encoding)), true)
11911199
}) else { return nil }
11921200

11931201
var str: String?
@@ -1201,7 +1209,7 @@ extension NSString {
12011209

12021210
public convenience init?(bytes: UnsafeRawPointer, length len: Int, encoding: UInt) {
12031211
let bytePtr = bytes.bindMemory(to: UInt8.self, capacity: len)
1204-
guard let cf = CFStringCreateWithBytes(kCFAllocatorDefault, bytePtr, len, CFStringConvertNSStringEncodingToEncoding(encoding), true) else {
1212+
guard let cf = CFStringCreateWithBytes(kCFAllocatorDefault, bytePtr, len, CFStringConvertNSStringEncodingToEncoding(numericCast(encoding)), true) else {
12051213
return nil
12061214
}
12071215
var str: String?
@@ -1224,7 +1232,7 @@ extension NSString {
12241232
let readResult = try NSData(contentsOf: url, options: [])
12251233

12261234
let bytePtr = readResult.bytes.bindMemory(to: UInt8.self, capacity: readResult.length)
1227-
guard let cf = CFStringCreateWithBytes(kCFAllocatorDefault, bytePtr, readResult.length, CFStringConvertNSStringEncodingToEncoding(enc), true) else {
1235+
guard let cf = CFStringCreateWithBytes(kCFAllocatorDefault, bytePtr, readResult.length, CFStringConvertNSStringEncodingToEncoding(numericCast(enc)), true) else {
12281236
throw NSError(domain: NSCocoaErrorDomain, code: CocoaError.fileReadInapplicableStringEncoding.rawValue, userInfo: [
12291237
"NSDebugDescription" : "Unable to create a string using the specified encoding."
12301238
])
@@ -1279,7 +1287,7 @@ extension NSString {
12791287
// Since the encoding being passed includes the byte order the BOM wont be checked or skipped, so pass offset to
12801288
// manually skip the BOM header.
12811289
guard let cf = CFStringCreateWithBytes(kCFAllocatorDefault, bytePtr + offset, readResult.length - offset,
1282-
CFStringConvertNSStringEncodingToEncoding(encoding), true) else {
1290+
CFStringConvertNSStringEncodingToEncoding(numericCast(encoding)), true) else {
12831291
throw NSError(domain: NSCocoaErrorDomain, code: CocoaError.fileReadInapplicableStringEncoding.rawValue, userInfo: [
12841292
"NSDebugDescription" : "Unable to create a string using the specified encoding."
12851293
])

Foundation/URLSession/libcurl/EasyHandle.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ extension _EasyHandle {
203203
/// set preferred receive buffer size
204204
/// - SeeAlso: https://curl.haxx.se/libcurl/c/CURLOPT_BUFFERSIZE.html
205205
func set(preferredReceiveBufferSize size: Int) {
206-
try! CFURLSession_easy_setopt_long(rawHandle, CFURLSessionOptionBUFFERSIZE, min(size, Int(CFURLSessionMaxWriteSize))).asError()
206+
try! CFURLSession_easy_setopt_long(rawHandle, CFURLSessionOptionBUFFERSIZE, numericCast(min(size, Int(CFURLSessionMaxWriteSize)))).asError()
207207
}
208208
/// Set custom HTTP headers
209209
/// - SeeAlso: https://curl.haxx.se/libcurl/c/CURLOPT_HTTPHEADER.html
@@ -264,7 +264,7 @@ extension _EasyHandle {
264264
}
265265

266266
func set(timeout value: Int) {
267-
try! CFURLSession_easy_setopt_long(rawHandle, CFURLSessionOptionTIMEOUT, value).asError()
267+
try! CFURLSession_easy_setopt_long(rawHandle, CFURLSessionOptionTIMEOUT, numericCast(value)).asError()
268268
}
269269

270270
func getTimeoutIntervalSpent() -> Double {

Foundation/URLSession/libcurl/MultiHandle.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ extension URLSession {
5757

5858
extension URLSession._MultiHandle {
5959
func configure(with configuration: URLSession._Configuration) {
60-
try! CFURLSession_multi_setopt_l(rawHandle, CFURLSessionMultiOptionMAX_HOST_CONNECTIONS, configuration.httpMaximumConnectionsPerHost).asError()
60+
try! CFURLSession_multi_setopt_l(rawHandle, CFURLSessionMultiOptionMAX_HOST_CONNECTIONS, numericCast(configuration.httpMaximumConnectionsPerHost)).asError()
6161
try! CFURLSession_multi_setopt_l(rawHandle, CFURLSessionMultiOptionPIPELINING, configuration.httpShouldUsePipelining ? 3 : 2).asError()
6262
//TODO: We may want to set
6363
// CFURLSessionMultiOptionMAXCONNECTS

0 commit comments

Comments
 (0)