@@ -90,7 +90,7 @@ extension mach_msg_port_descriptor_t: Mach.MessageDescriptor {
90
90
}
91
91
92
92
/// Creates a new port descriptor.
93
- public init ( _ port: Mach . Port , disposition: Mach . PortDisposition ) {
93
+ public init ( port: Mach . Port , disposition: Mach . PortDisposition ) {
94
94
self . init (
95
95
name: port. name,
96
96
pad1: 0 , pad2: 0 ,
@@ -137,7 +137,7 @@ extension mach_msg_guarded_port_descriptor_t: Mach.MessageDescriptor {
137
137
138
138
/// Creates a new port descriptor.
139
139
public init (
140
- _ port: Mach . Port , disposition: Mach . PortDisposition , context: mach_port_context_t = 0 ,
140
+ port: Mach . Port , disposition: Mach . PortDisposition , context: mach_port_context_t = 0 ,
141
141
guardFlags: Mach . MessagePortGuardFlags = [ ]
142
142
) {
143
143
self . init (
@@ -209,16 +209,27 @@ extension mach_msg_ool_descriptor_t: Mach.MessageDescriptor {
209
209
210
210
/// Creates a new OOL descriptor.
211
211
public init (
212
- _ data: Data , copyOption: Mach . OOLDescriptorCopyOption = . virtual,
212
+ data: Data ? , copyOption: Mach . OOLDescriptorCopyOption = . virtual,
213
213
deallocateOnSend: Bool = false
214
214
) {
215
+ guard let actualData = data else {
216
+ self . init (
217
+ address: nil ,
218
+ deallocate: deallocateOnSend ? 1 : 0 ,
219
+ copy: copyOption. rawValue,
220
+ pad1: 0 ,
221
+ type: Mach . MessageDescriptorType. ool. rawValue,
222
+ size: 0
223
+ )
224
+ return
225
+ }
215
226
self . init (
216
- address: UnsafeMutableRawPointer ( mutating: ( data as NSData ) . bytes) ,
227
+ address: UnsafeMutableRawPointer ( mutating: ( actualData as NSData ) . bytes) ,
217
228
deallocate: deallocateOnSend ? 1 : 0 ,
218
229
copy: copyOption. rawValue,
219
230
pad1: 0 ,
220
231
type: Mach . MessageDescriptorType. ool. rawValue,
221
- size: mach_msg_size_t ( data . count)
232
+ size: mach_msg_size_t ( actualData . count)
222
233
)
223
234
}
224
235
}
@@ -266,7 +277,7 @@ extension mach_msg_ool_ports_descriptor_t: Mach.MessageDescriptor {
266
277
267
278
/// Creates a new OOL ports descriptor.
268
279
public init (
269
- _ ports: [ Mach . Port ] , disposition: Mach . PortDisposition ,
280
+ ports: [ Mach . Port ] , disposition: Mach . PortDisposition ,
270
281
copyMethod: Mach . OOLDescriptorCopyOption ,
271
282
deallocateOnSend: Bool = false
272
283
) {
0 commit comments