mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user