summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cli/napi/node_api.rs2
-rw-r--r--tests/napi/src/tsfn.rs6
2 files changed, 5 insertions, 3 deletions
diff --git a/cli/napi/node_api.rs b/cli/napi/node_api.rs
index 2efb71c26..4497a4695 100644
--- a/cli/napi/node_api.rs
+++ b/cli/napi/node_api.rs
@@ -692,7 +692,7 @@ impl Drop for TsFn {
if let Some(finalizer) = self.thread_finalize_cb {
unsafe {
- (finalizer)(self.env as _, self.thread_finalize_data, ptr::null_mut());
+ (finalizer)(self.env as _, self.thread_finalize_data, self.context);
}
}
}
diff --git a/tests/napi/src/tsfn.rs b/tests/napi/src/tsfn.rs
index dabc96f83..a3a231cec 100644
--- a/tests/napi/src/tsfn.rs
+++ b/tests/napi/src/tsfn.rs
@@ -46,6 +46,7 @@ fn create_custom_gc(env: sys::napi_env) {
"Create async resource string in napi_register_module_v1 napi_register_module_v1"
);
let mut custom_gc_tsfn = ptr::null_mut();
+ let context = Box::into_raw(Box::new(0)) as *mut c_void;
check_status_or_panic!(
unsafe {
sys::napi_create_threadsafe_function(
@@ -57,7 +58,7 @@ fn create_custom_gc(env: sys::napi_env) {
1,
ptr::null_mut(),
Some(custom_gc_finalize),
- ptr::null_mut(),
+ context,
Some(custom_gc),
&mut custom_gc_tsfn,
)
@@ -80,8 +81,9 @@ unsafe extern "C" fn empty(
unsafe extern "C" fn custom_gc_finalize(
_env: sys::napi_env,
_finalize_data: *mut c_void,
- _finalize_hint: *mut c_void,
+ finalize_hint: *mut c_void,
) {
+ let _ = Box::from_raw(finalize_hint as *mut i32);
}
extern "C" fn custom_gc(