aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-05-05 00:41:22 -0700
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-05-05 21:35:08 -0700
commitc1f65ef975224c8615afbb0acc3781b013bc024e (patch)
tree7ab2035b2385c5269bf87d08f8bd92e94b3d7ce3 /src
parentd6ce585ef3a1aa8ed6cd83a31708b8fc4f1e841a (diff)
downloadbun-c1f65ef975224c8615afbb0acc3781b013bc024e.tar.gz
bun-c1f65ef975224c8615afbb0acc3781b013bc024e.tar.zst
bun-c1f65ef975224c8615afbb0acc3781b013bc024e.zip
napi_get_dataview_info?
Diffstat (limited to 'src')
-rw-r--r--src/napi/napi.zig10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/napi/napi.zig b/src/napi/napi.zig
index 5a8ddc966..3b7f5f6ec 100644
--- a/src/napi/napi.zig
+++ b/src/napi/napi.zig
@@ -787,7 +787,15 @@ pub export fn napi_is_dataview(_: napi_env, value: napi_value, result: *bool) na
result.* = !value.isEmptyOrUndefinedOrNull() and value.jsTypeLoose() == .DataView;
return .ok;
}
-pub extern fn napi_get_dataview_info(env: napi_env, dataview: napi_value, bytelength: [*c]usize, data: [*]*anyopaque, arraybuffer: *napi_value, byte_offset: [*c]usize) napi_status;
+pub export fn napi_get_dataview_info(env: napi_env, dataview: napi_value, bytelength: *usize, data: *?[*]u8, arraybuffer: *napi_value, byte_offset: *usize) napi_status {
+ var array_buffer = dataview.asArrayBuffer(env) orelse return .object_expected;
+ bytelength.* = array_buffer.byte_len;
+ data.* = array_buffer.ptr;
+ // TODO: will this work? will it fail due to being a DataView instead of a TypedArray?
+ arraybuffer.* = JSValue.c(JSC.C.JSObjectGetTypedArrayBuffer(env.ref(), dataview.asObjectRef(), null));
+ byte_offset.* = array_buffer.offset;
+ return .ok;
+}
pub export fn napi_get_version(_: napi_env, result: [*]u32) napi_status {
result[0] = bun.Global.version.major;
result[1] = bun.Global.version.minor;