mirror of
https://github.com/denoland/deno.git
synced 2025-12-23 08:48:24 +00:00
fix(napi): Fix misused napi_callback_info in CallbackInfo (#30983)
Some checks are pending
ci / build libs (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
Some checks are pending
ci / build libs (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
This commit is contained in:
parent
80e54a81e7
commit
e2b107867e
2 changed files with 8 additions and 9 deletions
|
|
@ -6,7 +6,7 @@ use crate::*;
|
|||
pub struct CallbackInfo {
|
||||
pub env: *mut Env,
|
||||
pub cb: napi_callback,
|
||||
pub cb_info: napi_callback_info,
|
||||
pub data: *mut c_void,
|
||||
pub args: *const c_void,
|
||||
}
|
||||
|
||||
|
|
@ -15,12 +15,12 @@ impl CallbackInfo {
|
|||
pub fn new_raw(
|
||||
env: *mut Env,
|
||||
cb: napi_callback,
|
||||
cb_info: napi_callback_info,
|
||||
data: *mut c_void,
|
||||
) -> *mut Self {
|
||||
Box::into_raw(Box::new(Self {
|
||||
env,
|
||||
cb,
|
||||
cb_info,
|
||||
data,
|
||||
args: std::ptr::null(),
|
||||
}))
|
||||
}
|
||||
|
|
@ -58,10 +58,10 @@ pub fn create_function<'s>(
|
|||
env: *mut Env,
|
||||
name: Option<v8::Local<v8::String>>,
|
||||
cb: napi_callback,
|
||||
cb_info: napi_callback_info,
|
||||
data: *mut c_void,
|
||||
) -> v8::Local<'s, v8::Function> {
|
||||
let external =
|
||||
v8::External::new(scope, CallbackInfo::new_raw(env, cb, cb_info) as *mut _);
|
||||
v8::External::new(scope, CallbackInfo::new_raw(env, cb, data) as *mut _);
|
||||
let function = v8::Function::builder_raw(call_fn)
|
||||
.data(external.into())
|
||||
.build(scope)
|
||||
|
|
|
|||
|
|
@ -188,7 +188,7 @@ fn napi_create_function<'s>(
|
|||
name: *const c_char,
|
||||
length: usize,
|
||||
cb: Option<napi_callback>,
|
||||
cb_info: napi_callback_info,
|
||||
data: *mut c_void,
|
||||
result: *mut napi_value<'s>,
|
||||
) -> napi_status {
|
||||
let env_ptr = env as *mut Env;
|
||||
|
|
@ -206,8 +206,7 @@ fn napi_create_function<'s>(
|
|||
|
||||
unsafe {
|
||||
v8::callback_scope!(unsafe scope, env.context());
|
||||
*result =
|
||||
create_function(scope, env_ptr, name, cb.unwrap(), cb_info).into();
|
||||
*result = create_function(scope, env_ptr, name, cb.unwrap(), data).into();
|
||||
}
|
||||
|
||||
napi_ok
|
||||
|
|
@ -1674,7 +1673,7 @@ fn napi_get_cb_info(
|
|||
|
||||
if !data.is_null() {
|
||||
unsafe {
|
||||
*data = cbinfo.cb_info;
|
||||
*data = cbinfo.data;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue