koffi 2.10.1 → 2.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +314 -99
- package/README.md +1 -0
- package/build/koffi/darwin_arm64/koffi.node +0 -0
- package/build/koffi/darwin_x64/koffi.node +0 -0
- package/build/koffi/freebsd_arm64/koffi.node +0 -0
- package/build/koffi/freebsd_ia32/koffi.node +0 -0
- package/build/koffi/freebsd_x64/koffi.node +0 -0
- package/build/koffi/linux_arm64/koffi.node +0 -0
- package/build/koffi/linux_armhf/koffi.node +0 -0
- package/build/koffi/linux_ia32/koffi.node +0 -0
- package/build/koffi/linux_loong64/koffi.node +0 -0
- package/build/koffi/linux_riscv64d/koffi.node +0 -0
- package/build/koffi/linux_x64/koffi.node +0 -0
- package/build/koffi/musl_x64/koffi.node +0 -0
- package/build/koffi/openbsd_ia32/koffi.node +0 -0
- package/build/koffi/openbsd_x64/koffi.node +0 -0
- package/build/koffi/win32_arm64/koffi.node +0 -0
- package/build/koffi/win32_ia32/koffi.node +0 -0
- package/build/koffi/win32_x64/koffi.node +0 -0
- package/doc/assets.ini +1 -1
- package/doc/{flaat/flaat.css → flat/flat.css} +2 -0
- package/doc/{flaat → flat}/normal.css +125 -31
- package/doc/{flaat → flat}/print.css +1 -2
- package/doc/flat/reset.css +41 -0
- package/doc/{flaat → flat}/small.css +5 -2
- package/doc/{flaat/flaat.js → flat/static.js} +21 -10
- package/doc/pages/contribute.md +3 -3
- package/doc/pages/output.md +32 -1
- package/doc/pages/packaging.md +5 -5
- package/doc/pages/platforms.md +2 -0
- package/doc/pages/pointers.md +75 -0
- package/doc/static/koffi.css +3 -2
- package/index.js +35 -9
- package/indirect.js +25 -9
- package/package.json +2 -2
- package/src/cnoke/src/tools.js +6 -0
- package/src/core/libcc/libcc.hh +3 -1
- package/src/koffi/CMakeLists.txt +2 -0
- package/src/koffi/src/abi_loong64.cc +23 -0
- package/src/koffi/src/abi_loong64_asm.S +240 -0
- package/src/koffi/src/abi_riscv64.cc +2 -2
- package/src/koffi/src/ffi.cc +39 -0
- package/src/koffi/src/ffi.hh +1 -1
- package/src/koffi/src/util.hh +21 -5
- package/build/koffi/linux_riscv64/koffi.node +0 -0
package/src/koffi/src/util.hh
CHANGED
|
@@ -123,11 +123,27 @@ static inline bool IsRawBuffer(Napi::Value value)
|
|
|
123
123
|
static inline Span<uint8_t> GetRawBuffer(Napi::Value value)
|
|
124
124
|
{
|
|
125
125
|
if (value.IsTypedArray()) {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
126
|
+
napi_typedarray_type type = napi_int8_array;
|
|
127
|
+
size_t length = 0;
|
|
128
|
+
void *ptr = nullptr;
|
|
129
|
+
|
|
130
|
+
napi_get_typedarray_info(value.Env(), value, &type, &length, &ptr, nullptr, nullptr);
|
|
131
|
+
|
|
132
|
+
switch (type) {
|
|
133
|
+
case napi_int8_array: { length *= 1; } break;
|
|
134
|
+
case napi_uint8_array: { length *= 1; } break;
|
|
135
|
+
case napi_uint8_clamped_array: { length *= 1; } break;
|
|
136
|
+
case napi_int16_array: { length *= 2; } break;
|
|
137
|
+
case napi_uint16_array: { length *= 2; } break;
|
|
138
|
+
case napi_int32_array: { length *= 4; } break;
|
|
139
|
+
case napi_uint32_array: { length *= 4; } break;
|
|
140
|
+
case napi_float32_array: { length *= 4; } break;
|
|
141
|
+
case napi_float64_array: { length *= 8; } break;
|
|
142
|
+
case napi_bigint64_array: { length *= 8; } break;
|
|
143
|
+
case napi_biguint64_array: { length *= 8; } break;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
return MakeSpan((uint8_t *)ptr, (Size)length);
|
|
131
147
|
} else if (value.IsArrayBuffer()) {
|
|
132
148
|
Napi::ArrayBuffer buffer = value.As<Napi::ArrayBuffer>();
|
|
133
149
|
|
|
Binary file
|