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)
Thanks,
Stéphane
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
···
On Aug 23, 2016, at 8:40 AM, Stéphane Lizeray via swift-users <swift-users@swift.org> wrote:
Thanks,
Stéphane
_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users
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@swift.org> wrote:
On Aug 23, 2016, at 8:40 AM, Stéphane Lizeray via swift-users <swift-users@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@swift.org
https://lists.swift.org/mailman/listinfo/swift-users
_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users