File tree 1 file changed +5
-4
lines changed
1 file changed +5
-4
lines changed Original file line number Diff line number Diff line change @@ -238,14 +238,15 @@ public struct DispatchDataIterator : IteratorProtocol, Sequence {
238
238
var ptr : UnsafePointer < Void > ?
239
239
self . _count = 0
240
240
self . _data = CDispatch . dispatch_data_create_map ( _data. __wrapped, & ptr, & self . _count)
241
- self . _ptr = UnsafePointer ( ptr! )
241
+ self . _ptr = UnsafePointer ( ptr)
242
242
self . _position = _data. startIndex
243
+
244
+ // The only time we expect a 'nil' pointer is when the data is empty.
245
+ assert ( self . _ptr != nil || self . _count == self . _position)
243
246
}
244
247
245
248
/// Advance to the next element and return it, or `nil` if no next
246
249
/// element exists.
247
- ///
248
- /// - Precondition: No preceding call to `self.next()` has returned `nil`.
249
250
public mutating func next( ) -> DispatchData . _Element ? {
250
251
if _position == _count { return nil }
251
252
let element = _ptr [ _position] ;
@@ -254,7 +255,7 @@ public struct DispatchDataIterator : IteratorProtocol, Sequence {
254
255
}
255
256
256
257
internal let _data : dispatch_data_t
257
- internal var _ptr : UnsafePointer < UInt8 >
258
+ internal var _ptr : UnsafePointer < UInt8 > !
258
259
internal var _count : Int
259
260
internal var _position : DispatchData . Index
260
261
}
You can’t perform that action at this time.
0 commit comments