diff options
author | Divy Srivastava <dj.srivastava23@gmail.com> | 2022-11-26 06:37:43 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-26 20:07:43 +0530 |
commit | fcdcc8c0c3316857e327bb3c0109fd244f1ec409 (patch) | |
tree | 136b98ac68990e8c38aa561b3ff13126ac53dc8e /ext/ffi/lib.rs | |
parent | 7e0c55818721b78109e2bb58bf14f814036bf06d (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.rs | 4 |
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(()) } |