Skip to content

Fix up swift-corelibs-foundation for abolition of IUO type in SE-0054 #343

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
May 3, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions Foundation/NSBundle.swift
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,7 @@ public class NSBundle : NSObject {
// MARK: - Localized Strings

public func localizedStringForKey(_ key: String, value: String?, table tableName: String?) -> String {
let localizedString = CFBundleCopyLocalizedString(_bundle, key._cfObject, value?._cfObject, tableName?._cfObject)
let localizedString = CFBundleCopyLocalizedString(_bundle, key._cfObject, value?._cfObject, tableName?._cfObject)!
return localizedString._swiftObject
}

Expand Down Expand Up @@ -273,7 +273,7 @@ public class NSBundle : NSObject {
}

public var developmentLocalization: String? {
let region = CFBundleGetDevelopmentRegion(_bundle)
let region = CFBundleGetDevelopmentRegion(_bundle)!
return region._swiftObject
}

Expand All @@ -284,12 +284,12 @@ public class NSBundle : NSObject {
}

public class func preferredLocalizationsFromArray(_ localizationsArray: [String], forPreferences preferencesArray: [String]?) -> [String] {
let localizations = CFBundleCopyLocalizationsForPreferences(localizationsArray._cfObject, preferencesArray?._cfObject)
let localizations = CFBundleCopyLocalizationsForPreferences(localizationsArray._cfObject, preferencesArray?._cfObject)!
return localizations._swiftObject.map { return ($0 as! NSString)._swiftObject }
}

public var executableArchitectures: [NSNumber]? {
let architectures = CFBundleCopyExecutableArchitectures(_bundle)
let architectures = CFBundleCopyExecutableArchitectures(_bundle)!
return architectures._swiftObject.map() { $0 as! NSNumber }
}
}
Expand Down
4 changes: 2 additions & 2 deletions Foundation/NSData.swift
Original file line number Diff line number Diff line change
Expand Up @@ -280,14 +280,14 @@ extension NSData {

// Swift does not currently expose MAP_FAILURE
if data != UnsafeMutablePointer<Void>(bitPattern: -1) {
return NSDataReadResult(bytes: data, length: length) { buffer, length in
return NSDataReadResult(bytes: data!, length: length) { buffer, length in
munmap(buffer, length)
}
}

}

let data = malloc(length)
let data = malloc(length)!
var remaining = Int(info.st_size)
var total = 0
while remaining > 0 {
Expand Down
2 changes: 1 addition & 1 deletion Foundation/NSDateFormatter.swift
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public class NSDateFormatter : NSFormatter {
let timeStyle = CFDateFormatterStyle(self.timeStyle.rawValue)
#endif

let obj = CFDateFormatterCreate(kCFAllocatorSystemDefault, locale._cfObject, dateStyle, timeStyle)
let obj = CFDateFormatterCreate(kCFAllocatorSystemDefault, locale._cfObject, dateStyle, timeStyle)!
_setFormatterAttributes(obj)
if let dateFormat = _dateFormat {
CFDateFormatterSetFormat(obj, dateFormat._cfObject)
Expand Down
22 changes: 11 additions & 11 deletions Foundation/NSFileManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -292,15 +292,15 @@ public class NSFileManager : NSObject {
var entry = readdir(dir)

while entry != nil {
if let entryName = withUnsafePointer(&entry.pointee.d_name, { (ptr) -> String? in
if let entryName = withUnsafePointer(&entry!.pointee.d_name, { (ptr) -> String? in
let int8Ptr = unsafeBitCast(ptr, to: UnsafePointer<Int8>.self)
return String(cString: int8Ptr)
}) {
// TODO: `entryName` should be limited in length to `entry.memory.d_namlen`.
if entryName != "." && entryName != ".." {
contents.append(entryName)

if let entryType = withUnsafePointer(&entry.pointee.d_type, { (ptr) -> Int32? in
if let entryType = withUnsafePointer(&entry!.pointee.d_type, { (ptr) -> Int32? in
let int32Ptr = unsafeBitCast(ptr, to: UnsafePointer<UInt8>.self)
return Int32(int32Ptr.pointee)
}) {
Expand Down Expand Up @@ -352,14 +352,14 @@ public class NSFileManager : NSObject {
result[NSFileSystemFileNumber] = NSNumber(unsignedLongLong: UInt64(s.st_ino))

let pwd = getpwuid(s.st_uid)
if pwd != nil && pwd.pointee.pw_name != nil {
let name = String(cString: pwd.pointee.pw_name)
if pwd != nil && pwd!.pointee.pw_name != nil {
let name = String(cString: pwd!.pointee.pw_name)
result[NSFileOwnerAccountName] = name
}

let grd = getgrgid(s.st_gid)
if grd != nil && grd.pointee.gr_name != nil {
let name = String(cString: grd.pointee.gr_name)
if grd != nil && grd!.pointee.gr_name != nil {
let name = String(cString: grd!.pointee.gr_name)
result[NSFileGroupOwnerAccountID] = name
}

Expand Down Expand Up @@ -479,15 +479,15 @@ public class NSFileManager : NSObject {

var current = fts_read(stream)
while current != nil {
switch Int32(current.pointee.fts_info) {
switch Int32(current!.pointee.fts_info) {
case FTS_DEFAULT, FTS_F, FTS_NSOK, FTS_SL, FTS_SLNONE:
if unlink(current.pointee.fts_path) == -1 {
let str = NSString(bytes: current.pointee.fts_path, length: Int(strlen(current.pointee.fts_path)), encoding: NSUTF8StringEncoding)!._swiftObject
if unlink(current!.pointee.fts_path) == -1 {
let str = NSString(bytes: current!.pointee.fts_path, length: Int(strlen(current!.pointee.fts_path)), encoding: NSUTF8StringEncoding)!._swiftObject
throw _NSErrorWithErrno(errno, reading: false, path: str)
}
case FTS_DP:
if rmdir(current.pointee.fts_path) == -1 {
let str = NSString(bytes: current.pointee.fts_path, length: Int(strlen(current.pointee.fts_path)), encoding: NSUTF8StringEncoding)!._swiftObject
if rmdir(current!.pointee.fts_path) == -1 {
let str = NSString(bytes: current!.pointee.fts_path, length: Int(strlen(current!.pointee.fts_path)), encoding: NSUTF8StringEncoding)!._swiftObject
throw _NSErrorWithErrno(errno, reading: false, path: str)
}
default:
Expand Down
2 changes: 1 addition & 1 deletion Foundation/NSKeyedArchiver.swift
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ public class NSKeyedArchiver : NSCoder {
}
}

let writeStream = _CFWriteStreamCreateFromFileDescriptor(kCFAllocatorSystemDefault, fd)
let writeStream = _CFWriteStreamCreateFromFileDescriptor(kCFAllocatorSystemDefault, fd)!

if !CFWriteStreamOpen(writeStream) {
return false
Expand Down
2 changes: 1 addition & 1 deletion Foundation/NSKeyedUnarchiver.swift
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ public class NSKeyedUnarchiver : NSCoder {

public class func unarchiveObjectWithFile(_ path: String) -> AnyObject? {
let url = NSURL(fileURLWithPath: path)
let readStream = CFReadStreamCreateWithFile(kCFAllocatorSystemDefault, url._cfObject)
let readStream = CFReadStreamCreateWithFile(kCFAllocatorSystemDefault, url._cfObject)!
var root : AnyObject? = nil

if !CFReadStreamOpen(readStream) {
Expand Down
2 changes: 1 addition & 1 deletion Foundation/NSNumber.swift
Original file line number Diff line number Diff line change
Expand Up @@ -290,7 +290,7 @@ public class NSNumber : NSValue {
}
var size: Int = 0
NSGetSizeAndAlignment(objCType!, &size, nil)
let buffer = malloc(size)
let buffer = malloc(size)!
aDecoder.decodeValueOfObjCType(objCType!, at: buffer)
self.init(bytes: buffer, objCType: objCType!)
free(buffer)
Expand Down
2 changes: 1 addition & 1 deletion Foundation/NSNumberFormatter.swift
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public class NSNumberFormatter : NSFormatter {
let numberStyle = CFNumberFormatterStyle(self.numberStyle.rawValue)
#endif

let obj = CFNumberFormatterCreate(kCFAllocatorSystemDefault, locale._cfObject, numberStyle)
let obj = CFNumberFormatterCreate(kCFAllocatorSystemDefault, locale._cfObject, numberStyle)!
_setFormatterAttributes(obj)
_currentCfFormatter = obj
return obj
Expand Down
30 changes: 15 additions & 15 deletions Foundation/NSString.swift
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ extension String : _ObjectTypeBridgeable {
let cf = unsafeBitCast(x, to: CFString.self)
let str = CFStringGetCStringPtr(cf, CFStringEncoding(kCFStringEncodingUTF8))
if str != nil {
result = String(cString: str)
result = String(cString: str!)
} else {
let length = CFStringGetLength(cf)
let buffer = UnsafeMutablePointer<UniChar>(allocatingCapacity: length)
Expand Down Expand Up @@ -181,7 +181,7 @@ internal func _bytesInEncoding(_ str: NSString, _ encoding: NSStringEncoding, _
return nil
}

let buffer = malloc(cLength + 1)
let buffer = malloc(cLength + 1)!
if !str.getBytes(buffer, maxLength: cLength, usedLength: &used, encoding: encoding, options: options, range: theRange, remaining: nil) {
fatalError("Internal inconsistency; previously claimed getBytes returned success but failed with similar invocation")
}
Expand Down Expand Up @@ -691,19 +691,19 @@ extension NSString {
}

public func uppercased(with locale: NSLocale?) -> String {
let mutableCopy = CFStringCreateMutableCopy(kCFAllocatorSystemDefault, 0, self._cfObject)
let mutableCopy = CFStringCreateMutableCopy(kCFAllocatorSystemDefault, 0, self._cfObject)!
CFStringUppercase(mutableCopy, locale?._cfObject ?? nil)
return mutableCopy._swiftObject
}

public func lowercased(with locale: NSLocale?) -> String {
let mutableCopy = CFStringCreateMutableCopy(kCFAllocatorSystemDefault, 0, self._cfObject)
let mutableCopy = CFStringCreateMutableCopy(kCFAllocatorSystemDefault, 0, self._cfObject)!
CFStringLowercase(mutableCopy, locale?._cfObject ?? nil)
return mutableCopy._swiftObject
}

public func capitalized(with locale: NSLocale?) -> String {
let mutableCopy = CFStringCreateMutableCopy(kCFAllocatorSystemDefault, 0, self._cfObject)
let mutableCopy = CFStringCreateMutableCopy(kCFAllocatorSystemDefault, 0, self._cfObject)!
CFStringCapitalize(mutableCopy, locale?._cfObject ?? nil)
return mutableCopy._swiftObject
}
Expand Down Expand Up @@ -933,7 +933,7 @@ extension NSString {
public class func availableStringEncodings() -> UnsafePointer<UInt> {
struct once {
static let encodings: UnsafePointer<UInt> = {
let cfEncodings = CFStringGetListOfAvailableEncodings()
let cfEncodings = CFStringGetListOfAvailableEncodings()!
var idx = 0
var numEncodings = 0

Expand Down Expand Up @@ -971,28 +971,28 @@ extension NSString {
}

public var decomposedStringWithCanonicalMapping: String {
let string = CFStringCreateMutable(kCFAllocatorSystemDefault, 0)
let string = CFStringCreateMutable(kCFAllocatorSystemDefault, 0)!
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not clear to me why the result here is nullable in the first place...

Copy link
Contributor Author

@cwillmor cwillmor May 3, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CFStringCreateMutable appears to have IUO return type when imported. Maybe it hasn't been annotated for nullability.

CFStringReplaceAll(string, self._cfObject)
CFStringNormalize(string, kCFStringNormalizationFormD)
return string._swiftObject
}

public var precomposedStringWithCanonicalMapping: String {
let string = CFStringCreateMutable(kCFAllocatorSystemDefault, 0)
let string = CFStringCreateMutable(kCFAllocatorSystemDefault, 0)!
CFStringReplaceAll(string, self._cfObject)
CFStringNormalize(string, kCFStringNormalizationFormC)
return string._swiftObject
}

public var decomposedStringWithCompatibilityMapping: String {
let string = CFStringCreateMutable(kCFAllocatorSystemDefault, 0)
let string = CFStringCreateMutable(kCFAllocatorSystemDefault, 0)!
CFStringReplaceAll(string, self._cfObject)
CFStringNormalize(string, kCFStringNormalizationFormKD)
return string._swiftObject
}

public var precomposedStringWithCompatibilityMapping: String {
let string = CFStringCreateMutable(kCFAllocatorSystemDefault, 0)
let string = CFStringCreateMutable(kCFAllocatorSystemDefault, 0)!
CFStringReplaceAll(string, self._cfObject)
CFStringNormalize(string, kCFStringNormalizationFormKC)
return string._swiftObject
Expand Down Expand Up @@ -1080,13 +1080,13 @@ extension NSString {
fatalError("out of range padIndex")
}

let mStr = CFStringCreateMutableCopy(kCFAllocatorSystemDefault, 0, _cfObject)
let mStr = CFStringCreateMutableCopy(kCFAllocatorSystemDefault, 0, _cfObject)!
CFStringPad(mStr, padString._cfObject, newLength, padIndex)
return mStr._swiftObject
}

public func folding(_ options: NSStringCompareOptions = [], locale: NSLocale?) -> String {
let string = CFStringCreateMutable(kCFAllocatorSystemDefault, 0)
let string = CFStringCreateMutable(kCFAllocatorSystemDefault, 0)!
CFStringReplaceAll(string, self._cfObject)
CFStringFold(string, options._cfValue(), locale?._cfObject)
return string._swiftObject
Expand Down Expand Up @@ -1124,7 +1124,7 @@ extension NSString {
}

public func applyingTransform(_ transform: String, reverse: Bool) -> String? {
let string = CFStringCreateMutable(kCFAllocatorSystemDefault, 0)
let string = CFStringCreateMutable(kCFAllocatorSystemDefault, 0)!
CFStringReplaceAll(string, _cfObject)
if (CFStringTransform(string, nil, transform._cfObject, reverse)) {
return string._swiftObject
Expand Down Expand Up @@ -1196,7 +1196,7 @@ extension NSString {
}

public convenience init(format: String, arguments argList: CVaListPointer) {
let str = CFStringCreateWithFormatAndArguments(kCFAllocatorSystemDefault, nil, format._cfObject, argList)
let str = CFStringCreateWithFormatAndArguments(kCFAllocatorSystemDefault, nil, format._cfObject, argList)!
self.init(str._swiftObject)
}

Expand All @@ -1217,7 +1217,7 @@ extension NSString {
public convenience init(format: NSString, _ args: CVarArg...) {
let str = withVaList(args) { (vaPtr) -> CFString! in
CFStringCreateWithFormatAndArguments(kCFAllocatorSystemDefault, nil, format._cfObject, vaPtr)
}
}!
self.init(str._swiftObject)
}

Expand Down
28 changes: 14 additions & 14 deletions Foundation/NSTask.swift
Original file line number Diff line number Diff line change
Expand Up @@ -40,31 +40,31 @@ private var managerThreadRunLoopIsRunningCondition = NSCondition()
internal let kCFSocketDataCallBack = CFSocketCallBackType.dataCallBack.rawValue
#endif

private func emptyRunLoopCallback(_ context : UnsafeMutablePointer<Void>!) -> Void {}
private func emptyRunLoopCallback(_ context : UnsafeMutablePointer<Void>?) -> Void {}


// Retain method for run loop source
private func runLoopSourceRetain(_ pointer : UnsafePointer<Void>!) -> UnsafePointer<Void>! {
let ref = Unmanaged<AnyObject>.fromOpaque(OpaquePointer(pointer)).takeUnretainedValue()
private func runLoopSourceRetain(_ pointer : UnsafePointer<Void>?) -> UnsafePointer<Void>? {
let ref = Unmanaged<AnyObject>.fromOpaque(OpaquePointer(pointer!)).takeUnretainedValue()
let retained = Unmanaged<AnyObject>.passRetained(ref)
return unsafeBitCast(retained, to: UnsafePointer<Void>.self)
}

// Release method for run loop source
private func runLoopSourceRelease(_ pointer : UnsafePointer<Void>!) -> Void {
Unmanaged<AnyObject>.fromOpaque(OpaquePointer(pointer)).release()
private func runLoopSourceRelease(_ pointer : UnsafePointer<Void>?) -> Void {
Unmanaged<AnyObject>.fromOpaque(OpaquePointer(pointer!)).release()
}

// Equal method for run loop source

private func runloopIsEqual(_ a : UnsafePointer<Void>!, b : UnsafePointer<Void>!) -> _DarwinCompatibleBoolean {
private func runloopIsEqual(_ a : UnsafePointer<Void>?, b : UnsafePointer<Void>?) -> _DarwinCompatibleBoolean {

let unmanagedrunLoopA = Unmanaged<AnyObject>.fromOpaque(OpaquePointer(a))
let unmanagedrunLoopA = Unmanaged<AnyObject>.fromOpaque(OpaquePointer(a!))
guard let runLoopA = unmanagedrunLoopA.takeUnretainedValue() as? NSRunLoop else {
return false
}

let unmanagedRunLoopB = Unmanaged<AnyObject>.fromOpaque(OpaquePointer(a))
let unmanagedRunLoopB = Unmanaged<AnyObject>.fromOpaque(OpaquePointer(a!))
guard let runLoopB = unmanagedRunLoopB.takeUnretainedValue() as? NSRunLoop else {
return false
}
Expand All @@ -76,7 +76,7 @@ private func runloopIsEqual(_ a : UnsafePointer<Void>!, b : UnsafePointer<Void>!
return true
}

@noreturn private func managerThread(_ x: UnsafeMutablePointer<Void>!) -> UnsafeMutablePointer<Void>! {
@noreturn private func managerThread(_ x: UnsafeMutablePointer<Void>?) -> UnsafeMutablePointer<Void>? {

managerThreadRunLoop = NSRunLoop.currentRunLoop()
var emptySourceContext = CFRunLoopSourceContext (version: 0, info: UnsafeMutablePointer<Void>(OpaquePointer(bitPattern: Unmanaged.passUnretained(managerThreadRunLoop!))),
Expand Down Expand Up @@ -111,14 +111,14 @@ private func managerThreadSetup() -> Void {


// Equal method for task in run loop source
private func nstaskIsEqual(_ a : UnsafePointer<Void>!, b : UnsafePointer<Void>!) -> _DarwinCompatibleBoolean {
private func nstaskIsEqual(_ a : UnsafePointer<Void>?, b : UnsafePointer<Void>?) -> _DarwinCompatibleBoolean {

let unmanagedTaskA = Unmanaged<AnyObject>.fromOpaque(OpaquePointer(a))
let unmanagedTaskA = Unmanaged<AnyObject>.fromOpaque(OpaquePointer(a!))
guard let taskA = unmanagedTaskA.takeUnretainedValue() as? NSTask else {
return false
}

let unmanagedTaskB = Unmanaged<AnyObject>.fromOpaque(OpaquePointer(a))
let unmanagedTaskB = Unmanaged<AnyObject>.fromOpaque(OpaquePointer(a!))
guard let taskB = unmanagedTaskB.takeUnretainedValue() as? NSTask else {
return false
}
Expand Down Expand Up @@ -228,7 +228,7 @@ public class NSTask : NSObject {
let socket = CFSocketCreateWithNative( nil, taskSocketPair[0], CFOptionFlags(kCFSocketDataCallBack), {
(socket, type, address, data, info ) in

let task = Unmanaged<NSTask>.fromOpaque(OpaquePointer(info)).takeUnretainedValue()
let task = Unmanaged<NSTask>.fromOpaque(OpaquePointer(info!)).takeUnretainedValue()

task.processLaunchedCondition.lock()
while task.running == false {
Expand Down Expand Up @@ -256,7 +256,7 @@ public class NSTask : NSObject {
#endif
pthread_create(&threadID, nil, { (context) -> UnsafeMutablePointer<Void>! in

let unmanagedTask : Unmanaged<NSTask> = Unmanaged.fromOpaque(context)
let unmanagedTask : Unmanaged<NSTask> = Unmanaged.fromOpaque(context!)
let task = unmanagedTask.takeRetainedValue()

task.terminationHandler!( task )
Expand Down
Loading