Skip to content

Commit e5e1ae8

Browse files
committed
cleanup dtors test
1 parent 9a5a064 commit e5e1ae8

File tree

2 files changed

+9
-6
lines changed

2 files changed

+9
-6
lines changed

tests/pass/tls/macos_tlv_atexit.rs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,14 @@ fn register<F>(f: F)
1010
where
1111
F: FnOnce() + 'static,
1212
{
13-
unsafe extern "C" fn run<F>(data: *mut u8)
13+
// This will receive the pointer passed into `_tlv_atexit`, which is the
14+
// original `f` but boxed up.
15+
unsafe extern "C" fn run<F>(ptr: *mut u8)
1416
where
1517
F: FnOnce() + 'static,
1618
{
17-
unsafe { (*Box::from_raw(data as *mut F))() }
19+
let f = unsafe { Box::from_raw(ptr as *mut F) };
20+
f()
1821
}
1922

2023
unsafe {
@@ -34,7 +37,7 @@ fn main() {
3437
println!("exiting main");
3538
register(|| println!("dtor 5"));
3639
register(|| {
37-
println!("registering dtor in dtor 4");
38-
register(|| println!("dtor 3"));
40+
println!("registering dtor in dtor 3");
41+
register(|| println!("dtor 4"));
3942
});
4043
}

tests/pass/tls/macos_tlv_atexit.stdout

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@ exiting thread
22
dtor 1
33
dtor 2
44
exiting main
5-
registering dtor in dtor 4
6-
dtor 3
5+
registering dtor in dtor 3
6+
dtor 4
77
dtor 5

0 commit comments

Comments
 (0)