fix(napi): napi_adjust_external_memory should be hidden with wasm target (#2031)

This commit is contained in:
Ranger 2024-04-10 14:57:04 +08:00 committed by GitHub
parent 5570d8b4f7
commit e86e3add2b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 19 additions and 15 deletions

View file

@ -141,23 +141,26 @@ impl<T: 'static> ToNapiValue for External<T> {
"Create external value failed"
)?;
let mut adjusted_external_memory_size = std::mem::MaybeUninit::new(0);
#[cfg(not(target_family = "wasm"))]
{
let mut adjusted_external_memory_size = std::mem::MaybeUninit::new(0);
if size_hint != 0 {
check_status!(
unsafe {
sys::napi_adjust_external_memory(
env,
size_hint,
adjusted_external_memory_size.as_mut_ptr(),
)
},
"Adjust external memory failed"
)?;
};
if size_hint != 0 {
check_status!(
unsafe {
sys::napi_adjust_external_memory(
env,
size_hint,
adjusted_external_memory_size.as_mut_ptr(),
)
},
"Adjust external memory failed"
)?;
};
(Box::leak(unsafe { Box::from_raw(obj_ptr) })).adjusted_size =
unsafe { adjusted_external_memory_size.assume_init() };
(Box::leak(unsafe { Box::from_raw(obj_ptr) })).adjusted_size =
unsafe { adjusted_external_memory_size.assume_init() };
}
Ok(napi_value)
}

View file

@ -1407,6 +1407,7 @@ pub(crate) unsafe extern "C" fn raw_finalize<T>(
) {
let tagged_object = finalize_data as *mut T;
drop(unsafe { Box::from_raw(tagged_object) });
#[cfg(not(target_family = "wasm"))]
if !finalize_hint.is_null() {
let size_hint = unsafe { *Box::from_raw(finalize_hint as *mut i64) };
if size_hint != 0 {