diff --git a/src/lib.rs b/src/lib.rs index a7b6c10..4f92995 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -84,18 +84,18 @@ impl Allocator { unsafe { GC_gcollect() } } - pub unsafe fn register_finalizer( + pub unsafe fn register_finalizer( ptr: *const c_void, - finalizer: impl FnOnce(*mut c_void) + 'static, + finalizer: &'static F, ) { - unsafe extern "C" fn finalize(ptr: *mut c_void, data: *mut c_void) { + extern "C" fn finalize(ptr: *mut c_void, data: *mut c_void) { (*(data as *mut F))(ptr) } GC_register_finalizer( ptr, finalize::, - &mut &finalizer as *const _ as *const _, + finalizer as *const _ as *const _, null(), null(), );