diff options
author | snek <snek@deno.com> | 2024-06-12 21:39:20 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-12 21:39:20 -0700 |
commit | 8ad25e86da30de65f9d00e08500dd49de7d7331e (patch) | |
tree | 732e9f10a2ad0a8fb09bf61ae6f358c3dd504ec1 /cli/napi/js_native_api.rs | |
parent | 280f20efd929b8ca817360a561971e5eaa4d8897 (diff) |
fix: node-api get_value_string_utf8 should use utf8_length (#24193)
whoops. also did a drive-by cleanup of `isolate` usage since i noticed
it while using `utf8_length(isolate)`
Diffstat (limited to 'cli/napi/js_native_api.rs')
-rw-r--r-- | cli/napi/js_native_api.rs | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/cli/napi/js_native_api.rs b/cli/napi/js_native_api.rs index 6b31e1fd2..fad13ba62 100644 --- a/cli/napi/js_native_api.rs +++ b/cli/napi/js_native_api.rs @@ -54,7 +54,7 @@ impl Reference { finalize_data: *mut c_void, finalize_hint: *mut c_void, ) -> Box<Self> { - let isolate = unsafe { &mut *(*env).isolate_ptr }; + let isolate = unsafe { (*env).isolate() }; let mut reference = Box::new(Reference { env, @@ -100,7 +100,7 @@ impl Reference { fn set_strong(&mut self) { if let ReferenceState::Weak(w) = &self.state { - let isolate = unsafe { &mut *(*self.env).isolate_ptr }; + let isolate = unsafe { (*self.env).isolate() }; if let Some(g) = w.to_global(isolate) { self.state = ReferenceState::Strong(g); } @@ -113,7 +113,7 @@ impl Reference { let cb = Box::new(move |_: &mut v8::Isolate| { Reference::weak_callback(reference) }); - let isolate = unsafe { &mut *(*self.env).isolate_ptr }; + let isolate = unsafe { (*self.env).isolate() }; self.state = ReferenceState::Weak(v8::Weak::with_finalizer(isolate, g, cb)); } @@ -2105,7 +2105,7 @@ fn napi_get_value_string_utf8( if buf.is_null() { check_arg!(env, result); unsafe { - *result = value.length(); + *result = value.utf8_length(env.isolate()); } } else if bufsize != 0 { let buffer = @@ -3274,10 +3274,9 @@ fn napi_resolve_deferred( check_arg!(env, result); check_arg!(env, deferred); - let isolate = unsafe { &mut *env.isolate_ptr }; let deferred_ptr = unsafe { NonNull::new_unchecked(deferred as *mut v8::PromiseResolver) }; - let global = unsafe { v8::Global::from_raw(isolate, deferred_ptr) }; + let global = unsafe { v8::Global::from_raw(env.isolate(), deferred_ptr) }; let resolver = v8::Local::new(&mut env.scope(), global); if !resolver @@ -3299,10 +3298,9 @@ fn napi_reject_deferred( check_arg!(env, result); check_arg!(env, deferred); - let isolate = unsafe { &mut *env.isolate_ptr }; let deferred_ptr = unsafe { NonNull::new_unchecked(deferred as *mut v8::PromiseResolver) }; - let global = unsafe { v8::Global::from_raw(isolate, deferred_ptr) }; + let global = unsafe { v8::Global::from_raw(env.isolate(), deferred_ptr) }; let resolver = v8::Local::new(&mut env.scope(), global); if !resolver @@ -3481,11 +3479,10 @@ fn napi_adjust_external_memory( let env = check_env!(env); check_arg!(env, adjusted_value); - let isolate = unsafe { &mut *env.isolate_ptr }; - unsafe { - *adjusted_value = - isolate.adjust_amount_of_external_allocated_memory(change_in_bytes); + *adjusted_value = env + .isolate() + .adjust_amount_of_external_allocated_memory(change_in_bytes); } napi_clear_last_error(env) |