Revert "Migrate from UnsafePointer<Void> to UnsafeRawPointer. (#3724)"

This reverts commit ece0951924.

This results in lldb failues on linux that I can't readily debug.
Backing out until they can be resolved.
This commit is contained in:
Andrew Trick
2016-07-26 02:50:57 -07:00
parent b65244805a
commit 0ed9ee8dee
74 changed files with 307 additions and 339 deletions

View File

@@ -72,21 +72,18 @@ public struct DispatchData : RandomAccessCollection, _ObjectiveCBridgeable {
public func withUnsafeBytes<Result, ContentType>(
body: @noescape (UnsafePointer<ContentType>) throws -> Result) rethrows -> Result
{
var ptr: UnsafeRawPointer? = nil
var ptr: UnsafePointer<Void>? = nil
var size = 0
let data = __dispatch_data_create_map(__wrapped, &ptr, &size)
let contentPtr = ptr!.bindMemory(
to: ContentType.self, capacity: size / strideof(ContentType.self))
defer { _fixLifetime(data) }
return try body(contentPtr)
return try body(UnsafePointer<ContentType>(ptr!))
}
public func enumerateBytes(
block: @noescape (buffer: UnsafeBufferPointer<UInt8>, byteIndex: Int, stop: inout Bool) -> Void)
{
_swift_dispatch_data_apply(__wrapped) { (data: __DispatchData, offset: Int, ptr: UnsafeRawPointer, size: Int) in
let bytePtr = ptr.bindMemory(to: UInt8.self, capacity: size)
let bp = UnsafeBufferPointer(start: bytePtr, count: size)
_swift_dispatch_data_apply(__wrapped) { (data: __DispatchData, offset: Int, ptr: UnsafePointer<Void>, size: Int) in
let bp = UnsafeBufferPointer(start: UnsafePointer<UInt8>(ptr), count: size)
var stop = false
block(buffer: bp, byteIndex: offset, stop: &stop)
return !stop
@@ -119,7 +116,7 @@ public struct DispatchData : RandomAccessCollection, _ObjectiveCBridgeable {
private func _copyBytesHelper(to pointer: UnsafeMutablePointer<UInt8>, from range: CountableRange<Index>) {
var copiedCount = 0
__dispatch_data_apply(__wrapped) { (data: __DispatchData, offset: Int, ptr: UnsafeRawPointer, size: Int) in
__dispatch_data_apply(__wrapped) { (data: __DispatchData, offset: Int, ptr: UnsafePointer<Void>, size: Int) in
let limit = Swift.min((range.endIndex - range.startIndex) - copiedCount, size)
memcpy(pointer + copiedCount, ptr, limit)
copiedCount += limit
@@ -182,12 +179,13 @@ public struct DispatchData : RandomAccessCollection, _ObjectiveCBridgeable {
var offset = 0
let subdata = __dispatch_data_copy_region(__wrapped, index, &offset)
var ptr: UnsafeRawPointer? = nil
var ptr: UnsafePointer<Void>? = nil
var size = 0
let map = __dispatch_data_create_map(subdata, &ptr, &size)
defer { _fixLifetime(map) }
return ptr!.load(fromByteOffset: index - offset, as: UInt8.self)
let pptr = UnsafePointer<UInt8>(ptr!)
return pptr[index - offset]
}
public subscript(bounds: Range<Int>) -> RandomAccessSlice<DispatchData> {
@@ -237,11 +235,11 @@ public struct DispatchDataIterator : IteratorProtocol, Sequence {
/// Create an iterator over the given DispatchData
public init(_data: DispatchData) {
var ptr: UnsafeRawPointer?
var ptr: UnsafePointer<Void>?
self._count = 0
self._data = __dispatch_data_create_map(
_data as __DispatchData, &ptr, &self._count)
self._ptr = ptr
self._ptr = UnsafePointer(ptr)
self._position = _data.startIndex
// The only time we expect a 'nil' pointer is when the data is empty.
@@ -252,13 +250,13 @@ public struct DispatchDataIterator : IteratorProtocol, Sequence {
/// element exists.
public mutating func next() -> DispatchData._Element? {
if _position == _count { return nil }
let element = _ptr.load(fromByteOffset: _position, as: UInt8.self)
let element = _ptr[_position]
_position = _position + 1
return element
}
internal let _data: __DispatchData
internal var _ptr: UnsafeRawPointer!
internal var _ptr: UnsafePointer<UInt8>!
internal var _count: Int
internal var _position: DispatchData.Index
}
@@ -285,7 +283,7 @@ extension DispatchData {
}
}
typealias _swift_data_applier = @convention(block) @noescape (__DispatchData, Int, UnsafeRawPointer, Int) -> Bool
typealias _swift_data_applier = @convention(block) @noescape (__DispatchData, Int, UnsafePointer<Void>, Int) -> Bool
@_silgen_name("_swift_dispatch_data_apply")
internal func _swift_dispatch_data_apply(_ data: __DispatchData, _ block: _swift_data_applier)