Skip to content

Commit 8803d07

Browse files
authored
Merge pull request swiftlang#168 from dgrove-oss/libdispatch-time-signedness
Correct signedness handling of DispatchTimeInterval
2 parents bda3baf + 1b43cb8 commit 8803d07

File tree

3 files changed

+12
-12
lines changed

3 files changed

+12
-12
lines changed

src/swift/IO.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ public extension DispatchIO {
8888
}
8989

9090
public func setInterval(interval: DispatchTimeInterval, flags: IntervalFlags = []) {
91-
dispatch_io_set_interval(self.__wrapped, interval.rawValue, flags.rawValue)
91+
dispatch_io_set_interval(self.__wrapped, UInt64(interval.rawValue), flags.rawValue)
9292
}
9393

9494
public func close(flags: CloseFlags = []) {

src/swift/Source.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -283,15 +283,15 @@ public extension DispatchSourceTimer {
283283
}
284284

285285
public func scheduleRepeating(deadline: DispatchTime, interval: DispatchTimeInterval, leeway: DispatchTimeInterval = .nanoseconds(0)) {
286-
dispatch_source_set_timer((self as! DispatchSource).__wrapped, deadline.rawValue, interval.rawValue, UInt64(leeway.rawValue))
286+
dispatch_source_set_timer((self as! DispatchSource).__wrapped, deadline.rawValue, UInt64(interval.rawValue), UInt64(leeway.rawValue))
287287
}
288288

289289
public func scheduleRepeating(deadline: DispatchTime, interval: Double, leeway: DispatchTimeInterval = .nanoseconds(0)) {
290290
dispatch_source_set_timer((self as! DispatchSource).__wrapped, deadline.rawValue, UInt64(interval * Double(NSEC_PER_SEC)), UInt64(leeway.rawValue))
291291
}
292292

293293
public func scheduleRepeating(wallDeadline: DispatchWallTime, interval: DispatchTimeInterval, leeway: DispatchTimeInterval = .nanoseconds(0)) {
294-
dispatch_source_set_timer((self as! DispatchSource).__wrapped, wallDeadline.rawValue, interval.rawValue, UInt64(leeway.rawValue))
294+
dispatch_source_set_timer((self as! DispatchSource).__wrapped, wallDeadline.rawValue, UInt64(interval.rawValue), UInt64(leeway.rawValue))
295295
}
296296

297297
public func scheduleRepeating(wallDeadline: DispatchWallTime, interval: Double, leeway: DispatchTimeInterval = .nanoseconds(0)) {

src/swift/Time.swift

+9-9
Original file line numberDiff line numberDiff line change
@@ -89,23 +89,23 @@ public enum DispatchTimeInterval {
8989
case microseconds(Int)
9090
case nanoseconds(Int)
9191

92-
internal var rawValue: UInt64 {
92+
internal var rawValue: Int64 {
9393
switch self {
94-
case .seconds(let s): return UInt64(s) * NSEC_PER_SEC
95-
case .milliseconds(let ms): return UInt64(ms) * NSEC_PER_MSEC
96-
case .microseconds(let us): return UInt64(us) * NSEC_PER_USEC
97-
case .nanoseconds(let ns): return UInt64(ns)
94+
case .seconds(let s): return Int64(s) * Int64(NSEC_PER_SEC)
95+
case .milliseconds(let ms): return Int64(ms) * Int64(NSEC_PER_MSEC)
96+
case .microseconds(let us): return Int64(us) * Int64(NSEC_PER_USEC)
97+
case .nanoseconds(let ns): return Int64(ns)
9898
}
9999
}
100100
}
101101

102102
public func +(time: DispatchTime, interval: DispatchTimeInterval) -> DispatchTime {
103-
let t = CDispatch.dispatch_time(time.rawValue, Int64(interval.rawValue))
103+
let t = CDispatch.dispatch_time(time.rawValue, interval.rawValue)
104104
return DispatchTime(rawValue: t)
105105
}
106106

107107
public func -(time: DispatchTime, interval: DispatchTimeInterval) -> DispatchTime {
108-
let t = CDispatch.dispatch_time(time.rawValue, -Int64(interval.rawValue))
108+
let t = CDispatch.dispatch_time(time.rawValue, -interval.rawValue)
109109
return DispatchTime(rawValue: t)
110110
}
111111

@@ -120,12 +120,12 @@ public func -(time: DispatchTime, seconds: Double) -> DispatchTime {
120120
}
121121

122122
public func +(time: DispatchWallTime, interval: DispatchTimeInterval) -> DispatchWallTime {
123-
let t = CDispatch.dispatch_time(time.rawValue, Int64(interval.rawValue))
123+
let t = CDispatch.dispatch_time(time.rawValue, interval.rawValue)
124124
return DispatchWallTime(rawValue: t)
125125
}
126126

127127
public func -(time: DispatchWallTime, interval: DispatchTimeInterval) -> DispatchWallTime {
128-
let t = CDispatch.dispatch_time(time.rawValue, -Int64(interval.rawValue))
128+
let t = CDispatch.dispatch_time(time.rawValue, -interval.rawValue)
129129
return DispatchWallTime(rawValue: t)
130130
}
131131

0 commit comments

Comments
 (0)