aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-08-28 00:33:42 -0700
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-08-28 00:39:08 -0700
commit296fb41e920736041c6c1dec38f1d8c355a402a1 (patch)
treeac52c42e65ba64a66dbf7e619101e36f24c6e0e7 /src
parent30992a8b051565ace57083b990d010316d56605d (diff)
downloadbun-296fb41e920736041c6c1dec38f1d8c355a402a1.tar.gz
bun-296fb41e920736041c6c1dec38f1d8c355a402a1.tar.zst
bun-296fb41e920736041c6c1dec38f1d8c355a402a1.zip
[bun:ffi] Fix crash with uint64_t
Diffstat (limited to 'src')
-rw-r--r--src/bun.js/api/FFI.h8
-rw-r--r--src/bun.js/api/ffi.zig2
-rw-r--r--src/bun.js/bindings/FFI.zig7
3 files changed, 8 insertions, 9 deletions
diff --git a/src/bun.js/api/FFI.h b/src/bun.js/api/FFI.h
index 4ab1f9b1c..d7776dd23 100644
--- a/src/bun.js/api/FFI.h
+++ b/src/bun.js/api/FFI.h
@@ -110,9 +110,9 @@ static bool JSVALUE_IS_CELL(EncodedJSValue val) __attribute__((__always_inline__
static bool JSVALUE_IS_INT32(EncodedJSValue val) __attribute__((__always_inline__));
static bool JSVALUE_IS_NUMBER(EncodedJSValue val) __attribute__((__always_inline__));
-static uint64_t JSVALUE_TO_UINT64(void* globalObject, EncodedJSValue value) __attribute__((__always_inline__));
+static uint64_t JSVALUE_TO_UINT64(EncodedJSValue value) __attribute__((__always_inline__));
static int64_t JSVALUE_TO_INT64(EncodedJSValue value) __attribute__((__always_inline__));
-uint64_t JSVALUE_TO_UINT64_SLOW(void* globalObject, EncodedJSValue value);
+uint64_t JSVALUE_TO_UINT64_SLOW(EncodedJSValue value);
int64_t JSVALUE_TO_INT64_SLOW(EncodedJSValue value);
EncodedJSValue UINT64_TO_JSVALUE_SLOW(void* globalObject, uint64_t val);
@@ -200,7 +200,7 @@ static bool JSVALUE_TO_BOOL(EncodedJSValue val) {
}
-static uint64_t JSVALUE_TO_UINT64(void* globalObject, EncodedJSValue value) {
+static uint64_t JSVALUE_TO_UINT64(EncodedJSValue value) {
if (JSVALUE_IS_INT32(value)) {
return (uint64_t)JSVALUE_TO_INT32(value);
}
@@ -209,7 +209,7 @@ static uint64_t JSVALUE_TO_UINT64(void* globalObject, EncodedJSValue value) {
return (uint64_t)JSVALUE_TO_DOUBLE(value);
}
- return JSVALUE_TO_UINT64_SLOW(globalObject, value);
+ return JSVALUE_TO_UINT64_SLOW(value);
}
static int64_t JSVALUE_TO_INT64(EncodedJSValue value) {
if (JSVALUE_IS_INT32(value)) {
diff --git a/src/bun.js/api/ffi.zig b/src/bun.js/api/ffi.zig
index f6bfdc5b4..8d4667bbe 100644
--- a/src/bun.js/api/ffi.zig
+++ b/src/bun.js/api/ffi.zig
@@ -1353,7 +1353,7 @@ pub const FFI = struct {
try writer.print("JSVALUE_TO_INT64({s})", .{self.symbol});
},
.u64_fast, .uint64_t => {
- try writer.print("JSVALUE_TO_UINT64(globalObject, {s})", .{self.symbol});
+ try writer.print("JSVALUE_TO_UINT64({s})", .{self.symbol});
},
.cstring, .ptr => {
try writer.print("JSVALUE_TO_PTR({s})", .{self.symbol});
diff --git a/src/bun.js/bindings/FFI.zig b/src/bun.js/bindings/FFI.zig
index 0fc33d303..802615007 100644
--- a/src/bun.js/bindings/FFI.zig
+++ b/src/bun.js/bindings/FFI.zig
@@ -36,8 +36,7 @@ pub inline fn JSVALUE_IS_NUMBER(arg_val: EncodedJSValue) @"bool" {
const val = arg_val;
return (@bitCast(c_ulonglong, val.asInt64) & @as(c_ulonglong, 18446181123756130304)) != 0;
}
-pub inline fn JSVALUE_TO_UINT64(arg_globalObject: ?*anyopaque, arg_value: EncodedJSValue) u64 {
- var globalObject = arg_globalObject;
+pub inline fn JSVALUE_TO_UINT64(arg_value: EncodedJSValue) u64 {
var value = arg_value;
if (JSVALUE_IS_INT32(value)) {
return @bitCast(u64, @as(c_longlong, JSVALUE_TO_INT32(value)));
@@ -45,7 +44,7 @@ pub inline fn JSVALUE_TO_UINT64(arg_globalObject: ?*anyopaque, arg_value: Encode
if (JSVALUE_IS_NUMBER(value)) {
return @floatToInt(u64, JSVALUE_TO_DOUBLE(value));
}
- return JSVALUE_TO_UINT64_SLOW(globalObject, value);
+ return JSVALUE_TO_UINT64_SLOW(value);
}
pub inline fn JSVALUE_TO_INT64(arg_value: EncodedJSValue) i64 {
const value = arg_value;
@@ -57,7 +56,7 @@ pub inline fn JSVALUE_TO_INT64(arg_value: EncodedJSValue) i64 {
}
return JSVALUE_TO_INT64_SLOW(value);
}
-pub extern fn JSVALUE_TO_UINT64_SLOW(globalObject: ?*anyopaque, value: EncodedJSValue) u64;
+pub extern fn JSVALUE_TO_UINT64_SLOW(value: EncodedJSValue) u64;
pub extern fn JSVALUE_TO_INT64_SLOW(value: EncodedJSValue) i64;
pub const UINT64_TO_JSVALUE_SLOW = @import("./bindings.zig").JSValue.fromUInt64NoTruncate;
pub const INT64_TO_JSVALUE_SLOW = @import("./bindings.zig").JSValue.fromInt64NoTruncate;