> On Jul 4, 2016, at 13:32, Kyle Jessup via swift-dev <swift-dev@swift.org> > wrote: > > I have this code which uses Unmanaged and the API seems to vary depending on > if I am using a 3.0 Preview or a development snapshot. I see it now when > trying the June 13th/27th preview vs June 20th snapshot. > > class MyClass {} > > let holderObject = MyClass() > > #if FLIP // works with PREVIEW > let leakyObject = UnsafeMutablePointer<Void>(OpaquePointer(bitPattern: > Unmanaged.passRetained(holderObject))) > #else // works with SNAPSHOT > let leakyObject = Unmanaged.passRetained(holderObject).toOpaque() > #endif > > #if FLIP // works with PREVIEW > let unleakyObject = > Unmanaged<MyClass>.fromOpaque(OpaquePointer(leakyObject)).takeRetainedValue() > #else // works with SNAPSHOT > let unleakyObject = > Unmanaged<MyClass>.fromOpaque(leakyObject).takeRetainedValue() > #endif > > I see the same difference between the previous snapshots and previews all the > way back to the “false” preview of yore. > > Am I misunderstanding something about the API or is this a bug?
We just didn’t manage to get SE-0017 <https://github.com/apple/swift-evolution/blob/master/proposals/0017-convert-unmanaged-to-use-unsafepointer.md> in before the first preview. The development branch (your SNAPSHOT) is the one that will match the final Swift 3. Jordan
_______________________________________________ swift-dev mailing list swift-dev@swift.org https://lists.swift.org/mailman/listinfo/swift-dev