Skip to content

Commit 09d5e33

Browse files
committed
Handle swift3 deprecation warnings for retain, UnsafePointer initialization and Range creation
1 parent 9b9aa17 commit 09d5e33

14 files changed

+60
-31
lines changed

Foundation/NSArray.swift

+3-1
Original file line numberDiff line numberDiff line change
@@ -640,7 +640,9 @@ public class NSMutableArray : NSArray {
640640

641641
public func replaceObjectAtIndex(index: Int, withObject anObject: AnyObject) {
642642
if self.dynamicType === NSMutableArray.self {
643-
_storage.replaceRange(Range<Int>(start: index, end: index + 1), with: [anObject])
643+
let min = index
644+
let max = index + 1
645+
_storage.replaceRange(min..<max, with: [anObject])
644646
} else {
645647
NSRequiresConcreteImplementation()
646648
}

Foundation/NSCalendar.swift

+5-5
Original file line numberDiff line numberDiff line change
@@ -96,11 +96,11 @@ public struct NSCalendarOptions : OptionSetType {
9696
public class NSCalendar : NSObject, NSCopying, NSSecureCoding {
9797
typealias CFType = CFCalendar
9898
private var _base = _CFInfo(typeID: CFCalendarGetTypeID())
99-
private var _identifier = UnsafeMutablePointer<Void>()
100-
private var _locale = UnsafeMutablePointer<Void>()
101-
private var _localeID = UnsafeMutablePointer<Void>()
102-
private var _tz = UnsafeMutablePointer<Void>()
103-
private var _cal = UnsafeMutablePointer<Void>()
99+
private var _identifier: UnsafeMutablePointer<Void> = nil
100+
private var _locale: UnsafeMutablePointer<Void> = nil
101+
private var _localeID: UnsafeMutablePointer<Void> = nil
102+
private var _tz: UnsafeMutablePointer<Void> = nil
103+
private var _cal: UnsafeMutablePointer<Void> = nil
104104

105105
internal var _cfObject: CFType {
106106
return unsafeBitCast(self, CFCalendar.self)

Foundation/NSCharacterSet.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@ public class NSCharacterSet : NSObject, NSCopying, NSMutableCopying, NSCoding {
3333
typealias CFType = CFCharacterSet
3434
private var _base = _CFInfo(typeID: CFCharacterSetGetTypeID())
3535
private var _hashValue = CFHashCode(0)
36-
private var _buffer = UnsafeMutablePointer<Void>()
36+
private var _buffer: UnsafeMutablePointer<Void> = nil
3737
private var _length = CFIndex(0)
38-
private var _annex = UnsafeMutablePointer<Void>()
38+
private var _annex: UnsafeMutablePointer<Void> = nil
3939

4040
internal var _cfObject: CFType {
4141
return unsafeBitCast(self, CFType.self)

Foundation/NSFileHandle.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public class NSFileHandle : NSObject, NSSecureCoding {
3030

3131
public func readDataOfLength(length: Int) -> NSData {
3232
var statbuf = stat()
33-
var dynamicBuffer: UnsafeMutablePointer<UInt8> = UnsafeMutablePointer<UInt8>()
33+
var dynamicBuffer: UnsafeMutablePointer<UInt8> = nil
3434
var total = 0
3535
if _closed || fstat(_fd, &statbuf) < 0 {
3636
fatalError("Unable to read file")

Foundation/NSLocale.swift

+3-3
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ import CoreFoundation
1313
public class NSLocale : NSObject, NSCopying, NSSecureCoding {
1414
typealias CFType = CFLocale
1515
private var _base = _CFInfo(typeID: CFLocaleGetTypeID())
16-
private var _identifier = UnsafeMutablePointer<Void>()
17-
private var _cache = UnsafeMutablePointer<Void>()
18-
private var _prefs = UnsafeMutablePointer<Void>()
16+
private var _identifier: UnsafeMutablePointer<Void> = nil
17+
private var _cache: UnsafeMutablePointer<Void> = nil
18+
private var _prefs: UnsafeMutablePointer<Void> = nil
1919
#if os(OSX) || os(iOS)
2020
private var _lock = pthread_mutex_t()
2121
#elseif os(Linux)

Foundation/NSNumber.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ public class NSNumber : NSValue {
281281

282282
public required convenience init?(coder aDecoder: NSCoder) {
283283
if !aDecoder.allowsKeyedCoding {
284-
var objCType = UnsafeMutablePointer<Int8>()
284+
var objCType: UnsafeMutablePointer<Int8> = nil
285285
var size: Int = 0
286286
NSGetSizeAndAlignment(objCType, &size, nil)
287287
let buffer = malloc(size)

Foundation/NSRange.swift

+3-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,9 @@ extension NSRange {
4646
@warn_unused_result
4747
public func toRange() -> Range<Int>? {
4848
if location == NSNotFound { return nil }
49-
return Range(start: location, end: location + length)
49+
let min = location
50+
let max = location + length
51+
return min..<max
5052
}
5153
}
5254

Foundation/NSRegularExpression.swift

+9-3
Original file line numberDiff line numberDiff line change
@@ -219,14 +219,18 @@ extension NSRegularExpression {
219219
let currentRange = result.range
220220
let replacement = replacementStringForResult(result, inString: string, offset: 0, template: templ)
221221
if currentRange.location > NSMaxRange(previousRange) {
222-
str += String(string.utf16[Range<String.UTF16View.Index>(start: start.advancedBy(NSMaxRange(previousRange)), end: start.advancedBy(currentRange.location))])
222+
let min = start.advancedBy(NSMaxRange(previousRange))
223+
let max = start.advancedBy(currentRange.location)
224+
str += String(string.utf16[min..<max])
223225
}
224226
str += replacement
225227
previousRange = currentRange
226228
}
227229

228230
if length > NSMaxRange(previousRange) {
229-
str += String(string.utf16[Range<String.UTF16View.Index>(start: start.advancedBy(NSMaxRange(previousRange)), end: start.advancedBy(length))])
231+
let min = start.advancedBy(NSMaxRange(previousRange))
232+
let max = start.advancedBy(length)
233+
str += String(string.utf16[min..<max])
230234
}
231235

232236
return str
@@ -301,7 +305,9 @@ extension NSRegularExpression {
301305
}
302306
if substringRange.location != NSNotFound && substringRange.length > 0 {
303307
let start = string.utf16.startIndex
304-
substring = String(string.utf16[Range<String.UTF16View.Index>(start: start.advancedBy(substringRange.location), end: start.advancedBy(substringRange.location + substringRange.length))])
308+
let min = start.advancedBy(substringRange.location)
309+
let max = start.advancedBy(substringRange.location + substringRange.length)
310+
substring = String(string.utf16[min..<max])
305311
}
306312
str.replaceCharactersInRange(rangeToReplace, withString: substring)
307313

Foundation/NSSet.swift

+2-1
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,8 @@ public class NSSet : NSObject, NSCopying, NSMutableCopying, NSSecureCoding, NSCo
102102
}
103103

104104
public convenience override init() {
105-
self.init(objects: UnsafePointer<AnyObject?>(), count: 0)
105+
let objects: UnsafePointer<AnyObject?> = nil
106+
self.init(objects: objects, count: 0)
106107
}
107108

108109
public init(objects: UnsafePointer<AnyObject?>, count cnt: Int) {

Foundation/NSString.swift

+6-4
Original file line numberDiff line numberDiff line change
@@ -387,7 +387,9 @@ extension NSString {
387387
public func substringWithRange(range: NSRange) -> String {
388388
if self.dynamicType == NSString.self || self.dynamicType == NSMutableString.self {
389389
let start = _storage.utf16.startIndex
390-
return String(_storage.utf16[Range<String.UTF16View.Index>(start: start.advancedBy(range.location), end: start.advancedBy(range.location + range.length))])
390+
let min = start.advancedBy(range.location)
391+
let max = start.advancedBy(range.location + range.length)
392+
return String(_storage.utf16[min..<max])
391393
} else {
392394
let buff = UnsafeMutablePointer<unichar>.alloc(range.length)
393395
getCharacters(buff, range: range)
@@ -1295,9 +1297,9 @@ public class NSMutableString : NSString {
12951297
if self.dynamicType === NSString.self || self.dynamicType === NSMutableString.self {
12961298
// this is incorrectly calculated for grapheme clusters that have a size greater than a single unichar
12971299
let start = _storage.startIndex
1298-
1299-
let subrange = Range(start: start.advancedBy(range.location), end: start.advancedBy(range.location + range.length))
1300-
_storage.replaceRange(subrange, with: aString)
1300+
let min = start.advancedBy(range.location)
1301+
let max = start.advancedBy(range.location + range.length)
1302+
_storage.replaceRange(min..<max, with: aString)
13011303
} else {
13021304
NSRequiresConcreteImplementation()
13031305
}

Foundation/NSTask.swift

+12-2
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,12 @@ private func WEXITSTATUS(status: CInt) -> CInt {
2525
}
2626

2727
private var managerThreadSetupOnceToken = pthread_once_t()
28+
// these are different sadly...
29+
#if os(OSX) || os(iOS)
30+
private var threadID: pthread_t = nil
31+
#elseif os(Linux)
2832
private var threadID = pthread_t()
33+
#endif
2934

3035
private var managerThreadRunLoop : NSRunLoop? = nil
3136
private var managerThreadRunLoopIsRunning = false
@@ -40,8 +45,9 @@ private func emptyRunLoopCallback(context : UnsafeMutablePointer<Void>) -> Void
4045

4146
// Retain method for run loop source
4247
private func runLoopSourceRetain(pointer : UnsafePointer<Void>) -> UnsafePointer<Void> {
43-
let _ = Unmanaged<AnyObject>.fromOpaque(COpaquePointer(pointer)).retain()
44-
return pointer
48+
let ref = Unmanaged<AnyObject>.fromOpaque(COpaquePointer(pointer)).takeUnretainedValue()
49+
let retained = Unmanaged<AnyObject>.passRetained(ref)
50+
return unsafeBitCast(retained, UnsafePointer<Void>.self)
4551
}
4652

4753
// Release method for run loop source
@@ -243,7 +249,11 @@ public class NSTask : NSObject {
243249
// If a termination handler has been set, invoke it on a background thread
244250

245251
if task.terminationHandler != nil {
252+
#if os(OSX) || os(iOS)
253+
var threadID: pthread_t = nil
254+
#elseif os(Linux)
246255
var threadID = pthread_t()
256+
#endif
247257
pthread_create(&threadID, nil, { (context) -> UnsafeMutablePointer<Void> in
248258

249259
let unmanagedTask : Unmanaged<NSTask> = Unmanaged.fromOpaque(context)

Foundation/NSThread.swift

+7-3
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ internal class NSThreadSpecific<T: AnyObject> {
3939

4040
internal func get(generator: (Void) -> T) -> T {
4141
let specific = pthread_getspecific(self.key)
42-
if specific != UnsafeMutablePointer<Void>() {
42+
if specific != nil {
4343
return Unmanaged<T>.fromOpaque(COpaquePointer(specific)).takeUnretainedValue()
4444
} else {
4545
let value = generator()
@@ -51,7 +51,7 @@ internal class NSThreadSpecific<T: AnyObject> {
5151
internal func set(value: T) {
5252
let specific = pthread_getspecific(self.key)
5353
var previous: Unmanaged<T>?
54-
if specific != UnsafeMutablePointer<Void>() {
54+
if specific != nil {
5555
previous = Unmanaged<T>.fromOpaque(COpaquePointer(specific))
5656
}
5757
if let prev = previous {
@@ -154,7 +154,11 @@ public class NSThread : NSObject {
154154
}
155155

156156
internal var _main: (Void) -> Void = {}
157-
internal var _thread = pthread_t()
157+
#if os(OSX) || os(iOS)
158+
private var _thread: pthread_t = nil
159+
#elseif os(Linux)
160+
private var _thread = pthread_t()
161+
#endif
158162
internal var _attr = pthread_attr_t()
159163
internal var _status = _NSThreadStatus.Initialized
160164
internal var _cancelled = false

Foundation/NSTimeZone.swift

+3-3
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ import CoreFoundation
1313
public class NSTimeZone : NSObject, NSCopying, NSSecureCoding, NSCoding {
1414
typealias CFType = CFTimeZone
1515
private var _base = _CFInfo(typeID: CFTimeZoneGetTypeID())
16-
private var _name = UnsafeMutablePointer<Void>()
17-
private var _data = UnsafeMutablePointer<Void>()
18-
private var _periods = UnsafeMutablePointer<Void>()
16+
private var _name: UnsafeMutablePointer<Void> = nil
17+
private var _data: UnsafeMutablePointer<Void> = nil
18+
private var _periods: UnsafeMutablePointer<Void> = nil
1919
private var _periodCnt = Int32(0)
2020

2121
internal var _cfObject: CFType {

Foundation/NSXMLNode.swift

+3-1
Original file line numberDiff line numberDiff line change
@@ -371,7 +371,9 @@ public class NSXMLNode : NSObject, NSCopying {
371371
}
372372
if char == ";" && inEntity {
373373
inEntity = false
374-
entities.append((Range<Int>(start: startIndex, end: index + 1),String(entityChars)))
374+
let min = startIndex
375+
let max = index + 1
376+
entities.append((min..<max, String(entityChars)))
375377
startIndex = 0
376378
entityChars.removeAll()
377379
}

0 commit comments

Comments
 (0)