summaryrefslogtreecommitdiff
path: root/src/libdeno.rs
diff options
context:
space:
mode:
authorF001 <changchun.fan@qq.com>2018-12-04 11:07:34 +0800
committerRyan Dahl <ry@tinyclouds.org>2018-12-03 19:07:34 -0800
commit9e839b7e2325e55147cc7e49ed9576cc000eaf63 (patch)
treedecb837a389fb07f65d7b681208ae4b5549f321a /src/libdeno.rs
parentf6c841a6cd85b8e8db3c6cb52fa41811535a72ca (diff)
Avoid memory leak (#1265)
Diffstat (limited to 'src/libdeno.rs')
-rw-r--r--src/libdeno.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/libdeno.rs b/src/libdeno.rs
index c831dc73a..35278a7da 100644
--- a/src/libdeno.rs
+++ b/src/libdeno.rs
@@ -29,6 +29,18 @@ impl deno_buf {
}
}
+/// Converts Rust &Buf to libdeno `deno_buf`.
+impl<'a> From<&'a [u8]> for deno_buf {
+ fn from(x: &'a [u8]) -> Self {
+ Self {
+ alloc_ptr: std::ptr::null_mut(),
+ alloc_len: 0,
+ data_ptr: x.as_ref().as_ptr() as *mut u8,
+ data_len: x.len(),
+ }
+ }
+}
+
type DenoRecvCb = unsafe extern "C" fn(
user_data: *mut c_void,
req_id: i32,