File tree Expand file tree Collapse file tree 1 file changed +9
-5
lines changed Expand file tree Collapse file tree 1 file changed +9
-5
lines changed Original file line number Diff line number Diff line change @@ -80,13 +80,17 @@ UnmanagedTests.test("Opaque avoid retain/release") {
80
80
// pointer. This test's expectEqual is kind of bogus, we're just checking that
81
81
// it doesn't crash.
82
82
83
- let ref = UnsafeMutablePointer < Int > ( capacity: 1 )
84
- let unmanaged = Unmanaged . fromOpaque ( UnsafeRawPointer ( ref) )
83
+ // Create a dangling pointer, usually to unmapped memory.
84
+ let ref = UnsafeRawPointer ( bitPattern: 1 ) !
85
+ // Turn it into a dangling unmanaged reference.
86
+ // We expect this not to crash, as this operation isn't
87
+ // supposed to dereference the pointer in any way.
88
+ let unmanaged = Unmanaged . fromOpaque ( ref)
89
+ // Similarly, converting the unmanaged reference back to a
90
+ // pointer should not ever try to dereference it either.
85
91
let ref2 = unmanaged. toOpaque ( )
86
-
92
+ // ...and we must get back the same pointer.
87
93
expectEqual ( ref, ref2)
88
-
89
- ref. deallocate ( )
90
94
}
91
95
92
96
runAllTests ( )
You can’t perform that action at this time.
0 commit comments