[swift-users] Data(bytesNoCopy:count:deallocator)
Tony Parker
anthony.parker at apple.com
Tue Aug 23 17:32:54 CDT 2016
We should probably add a predefined enum for a deallocator that matches UnsafeMutableRawPointer.allocate. Stéphane or Andy, would you mind filing a JIRA or radar for that?
- Tony
> On Aug 23, 2016, at 9:24 AM, Andrew Trick via swift-users <swift-users at swift.org> wrote:
>
>
>> On Aug 23, 2016, at 8:40 AM, Stéphane Lizeray via swift-users <swift-users at swift.org> wrote:
>>
>> Hello,
>>
>> I create an UsafeMutableRawPointer using the allocate method.
>>
>> Later on I want to create a Data struct from this pointer using the bytesNoCopy initializer. Which deallocator should I pass?
>>
>> It looks like this:
>>
>> let retPointer = UnsafeMutableRawPointer.allocate(bytes: size, alignedTo: MemoryLayout<UInt8>.alignment)
>> ….
>>
>> let d = Data(bytesNoCopy: retPointer, count: size,deallocator:Deallocator.free)
>
> Hi Stéphane,
>
> This should work:
>
> let retPointer = UnsafeMutableRawPointer.allocate(bytes: size, alignedTo: MemoryLayout<UInt8>.alignment)
>
> let d = Data(bytesNoCopy: retPointer, count: size, deallocator: .custom({ (ptr, size) in
> ptr.deallocate(bytes: size, alignedTo: 1)
> }))
>
> -Andy
>
>>
>> Thanks,
>>
>> Stéphane
>>
>> _______________________________________________
>> swift-users mailing list
>> swift-users at swift.org
>> https://lists.swift.org/mailman/listinfo/swift-users
>
> _______________________________________________
> swift-users mailing list
> swift-users at swift.org
> https://lists.swift.org/mailman/listinfo/swift-users
More information about the swift-users
mailing list