summaryrefslogtreecommitdiff
path: root/ext/ffi/lib.rs
diff options
context:
space:
mode:
authorDivy Srivastava <dj.srivastava23@gmail.com>2022-11-26 06:37:43 -0800
committerGitHub <noreply@github.com>2022-11-26 20:07:43 +0530
commitfcdcc8c0c3316857e327bb3c0109fd244f1ec409 (patch)
tree136b98ac68990e8c38aa561b3ff13126ac53dc8e /ext/ffi/lib.rs
parent7e0c55818721b78109e2bb58bf14f814036bf06d (diff)
feat(ops): support raw pointer arguments (#16826)
See https://github.com/denoland/deno/pull/16814#discussion_r1032744083. Allows nullable buffers in low-level ops like FFI: ```rust fn op_ffi_ptr_of<FP>( state: &mut OpState, buf: *const u8, out: &mut [u32], ) where FP: FfiPermissions + 'static { // .. } ```
Diffstat (limited to 'ext/ffi/lib.rs')
-rw-r--r--ext/ffi/lib.rs4
1 files changed, 2 insertions, 2 deletions
diff --git a/ext/ffi/lib.rs b/ext/ffi/lib.rs
index 3de204ef3..65d64af33 100644
--- a/ext/ffi/lib.rs
+++ b/ext/ffi/lib.rs
@@ -2065,7 +2065,7 @@ fn op_ffi_call_nonblocking<'scope>(
#[op(fast)]
fn op_ffi_ptr_of<FP>(
state: &mut deno_core::OpState,
- buf: &[u8],
+ buf: *const u8,
out: &mut [u32],
) -> Result<(), AnyError>
where
@@ -2084,7 +2084,7 @@ where
// SAFETY: Out buffer was asserted to be at least large enough to hold a usize, and properly aligned.
let out = unsafe { &mut *outptr };
- *out = buf.as_ptr() as usize;
+ *out = buf as usize;
Ok(())
}