diff options
Diffstat (limited to 'ext/ffi/static.rs')
-rw-r--r-- | ext/ffi/static.rs | 46 |
1 files changed, 23 insertions, 23 deletions
diff --git a/ext/ffi/static.rs b/ext/ffi/static.rs index 8a6c147d0..ba1364d4f 100644 --- a/ext/ffi/static.rs +++ b/ext/ffi/static.rs @@ -6,21 +6,21 @@ use crate::MAX_SAFE_INTEGER; use crate::MIN_SAFE_INTEGER; use deno_core::error::type_error; use deno_core::error::AnyError; -use deno_core::op; -use deno_core::serde_v8; +use deno_core::op2; use deno_core::v8; +use deno_core::OpState; use deno_core::ResourceId; use std::ptr; -#[op(v8)] +#[op2] pub fn op_ffi_get_static<'scope>( scope: &mut v8::HandleScope<'scope>, - state: &mut deno_core::OpState, - rid: ResourceId, - name: String, - static_type: NativeType, + state: &mut OpState, + #[smi] rid: ResourceId, + #[string] name: String, + #[serde] static_type: NativeType, optional: bool, -) -> Result<serde_v8::Value<'scope>, AnyError> { +) -> Result<v8::Local<'scope, v8::Value>, AnyError> { let resource = state.resource_table.get::<DynamicLibraryResource>(rid)?; let data_ptr = match resource.get_static(name) { @@ -28,7 +28,7 @@ pub fn op_ffi_get_static<'scope>( Err(err) => { if optional { let null: v8::Local<v8::Value> = v8::null(scope).into(); - return Ok(null.into()); + return Ok(null); } else { Err(err) } @@ -44,48 +44,48 @@ pub fn op_ffi_get_static<'scope>( let result = unsafe { ptr::read_unaligned(data_ptr as *const bool) }; let boolean: v8::Local<v8::Value> = v8::Boolean::new(scope, result).into(); - boolean.into() + boolean } NativeType::U8 => { // SAFETY: ptr is user provided let result = unsafe { ptr::read_unaligned(data_ptr as *const u8) }; let number: v8::Local<v8::Value> = v8::Integer::new_from_unsigned(scope, result as u32).into(); - number.into() + number } NativeType::I8 => { // SAFETY: ptr is user provided let result = unsafe { ptr::read_unaligned(data_ptr as *const i8) }; let number: v8::Local<v8::Value> = v8::Integer::new(scope, result as i32).into(); - number.into() + number } NativeType::U16 => { // SAFETY: ptr is user provided let result = unsafe { ptr::read_unaligned(data_ptr as *const u16) }; let number: v8::Local<v8::Value> = v8::Integer::new_from_unsigned(scope, result as u32).into(); - number.into() + number } NativeType::I16 => { // SAFETY: ptr is user provided let result = unsafe { ptr::read_unaligned(data_ptr as *const i16) }; let number: v8::Local<v8::Value> = v8::Integer::new(scope, result as i32).into(); - number.into() + number } NativeType::U32 => { // SAFETY: ptr is user provided let result = unsafe { ptr::read_unaligned(data_ptr as *const u32) }; let number: v8::Local<v8::Value> = v8::Integer::new_from_unsigned(scope, result).into(); - number.into() + number } NativeType::I32 => { // SAFETY: ptr is user provided let result = unsafe { ptr::read_unaligned(data_ptr as *const i32) }; let number: v8::Local<v8::Value> = v8::Integer::new(scope, result).into(); - number.into() + number } NativeType::U64 => { // SAFETY: ptr is user provided @@ -95,7 +95,7 @@ pub fn op_ffi_get_static<'scope>( } else { v8::Number::new(scope, result as f64).into() }; - integer.into() + integer } NativeType::I64 => { // SAFETY: ptr is user provided @@ -107,7 +107,7 @@ pub fn op_ffi_get_static<'scope>( } else { v8::Number::new(scope, result as f64).into() }; - integer.into() + integer } NativeType::USize => { // SAFETY: ptr is user provided @@ -118,7 +118,7 @@ pub fn op_ffi_get_static<'scope>( } else { v8::Number::new(scope, result as f64).into() }; - integer.into() + integer } NativeType::ISize => { // SAFETY: ptr is user provided @@ -129,25 +129,25 @@ pub fn op_ffi_get_static<'scope>( } else { v8::Number::new(scope, result as f64).into() }; - integer.into() + integer } NativeType::F32 => { // SAFETY: ptr is user provided let result = unsafe { ptr::read_unaligned(data_ptr as *const f32) }; let number: v8::Local<v8::Value> = v8::Number::new(scope, result as f64).into(); - number.into() + number } NativeType::F64 => { // SAFETY: ptr is user provided let result = unsafe { ptr::read_unaligned(data_ptr as *const f64) }; let number: v8::Local<v8::Value> = v8::Number::new(scope, result).into(); - number.into() + number } NativeType::Pointer | NativeType::Function | NativeType::Buffer => { let external: v8::Local<v8::Value> = v8::External::new(scope, data_ptr).into(); - external.into() + external } NativeType::Struct(_) => { return Err(type_error("Invalid FFI static type 'struct'")); |