rocksdb-native 3.0.0 → 3.0.1
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/binding.c +20 -3
- package/package.json +1 -1
- package/prebuilds/android-arm64/rocksdb-native.bare +0 -0
- package/prebuilds/android-ia32/rocksdb-native.bare +0 -0
- package/prebuilds/android-x64/rocksdb-native.bare +0 -0
- package/prebuilds/darwin-arm64/rocksdb-native.bare +0 -0
- package/prebuilds/darwin-arm64/rocksdb-native.node +0 -0
- package/prebuilds/darwin-x64/rocksdb-native.bare +0 -0
- package/prebuilds/darwin-x64/rocksdb-native.node +0 -0
- package/prebuilds/ios-arm64/rocksdb-native.bare +0 -0
- package/prebuilds/ios-arm64-simulator/rocksdb-native.bare +0 -0
- package/prebuilds/ios-x64-simulator/rocksdb-native.bare +0 -0
- package/prebuilds/linux-arm64/rocksdb-native.bare +0 -0
- package/prebuilds/linux-arm64/rocksdb-native.node +0 -0
- package/prebuilds/linux-x64/rocksdb-native.bare +0 -0
- package/prebuilds/linux-x64/rocksdb-native.node +0 -0
- package/prebuilds/win32-arm64/rocksdb-native.bare +0 -0
- package/prebuilds/win32-arm64/rocksdb-native.node +0 -0
- package/prebuilds/win32-x64/rocksdb-native.bare +0 -0
- package/prebuilds/win32-x64/rocksdb-native.node +0 -0
package/binding.c
CHANGED
|
@@ -1043,6 +1043,23 @@ rocksdb_native_iterator_close(js_env_t *env, js_callback_info_t *info) {
|
|
|
1043
1043
|
return NULL;
|
|
1044
1044
|
}
|
|
1045
1045
|
|
|
1046
|
+
static int
|
|
1047
|
+
rocksdb_native_try_create_external_arraybuffer(js_env_t *env, void *data, size_t len, js_value_t **result) {
|
|
1048
|
+
// the external arraybuffer api is optional per (https://nodejs.org/api/n-api.html#napi_create_external_arraybuffer)
|
|
1049
|
+
// so provide a fallback that does a memcpy
|
|
1050
|
+
int err = js_create_external_arraybuffer(env, data, len, rocksdb_native__on_free, NULL, result);
|
|
1051
|
+
if (err == 0) return 0;
|
|
1052
|
+
|
|
1053
|
+
void* cpy;
|
|
1054
|
+
err = js_create_arraybuffer(env, len, &cpy, result);
|
|
1055
|
+
if (err != 0) return err;
|
|
1056
|
+
|
|
1057
|
+
memcpy(cpy, data, len);
|
|
1058
|
+
free(data);
|
|
1059
|
+
|
|
1060
|
+
return 0;
|
|
1061
|
+
}
|
|
1062
|
+
|
|
1046
1063
|
static void
|
|
1047
1064
|
rocksdb_native__on_iterator_read(rocksdb_iterator_t *handle, int status) {
|
|
1048
1065
|
int err;
|
|
@@ -1102,7 +1119,7 @@ rocksdb_native__on_iterator_read(rocksdb_iterator_t *handle, int status) {
|
|
|
1102
1119
|
|
|
1103
1120
|
rocksdb_slice_t *key = &req->keys[i];
|
|
1104
1121
|
|
|
1105
|
-
err =
|
|
1122
|
+
err = rocksdb_native_try_create_external_arraybuffer(env, (void *) key->data, key->len, &result);
|
|
1106
1123
|
assert(err == 0);
|
|
1107
1124
|
|
|
1108
1125
|
err = js_set_element(env, keys, i, result);
|
|
@@ -1110,7 +1127,7 @@ rocksdb_native__on_iterator_read(rocksdb_iterator_t *handle, int status) {
|
|
|
1110
1127
|
|
|
1111
1128
|
rocksdb_slice_t *value = &req->values[i];
|
|
1112
1129
|
|
|
1113
|
-
err =
|
|
1130
|
+
err = rocksdb_native_try_create_external_arraybuffer(env, (void *) value->data, value->len, &result);
|
|
1114
1131
|
assert(err == 0);
|
|
1115
1132
|
|
|
1116
1133
|
err = js_set_element(env, values, i, result);
|
|
@@ -1265,7 +1282,7 @@ rocksdb_native__on_read(rocksdb_read_batch_t *handle, int status) {
|
|
|
1265
1282
|
} else {
|
|
1266
1283
|
rocksdb_slice_t *slice = &req->reads[i].value;
|
|
1267
1284
|
|
|
1268
|
-
err =
|
|
1285
|
+
err = rocksdb_native_try_create_external_arraybuffer(env, (void *) slice->data, slice->len, &result);
|
|
1269
1286
|
assert(err == 0);
|
|
1270
1287
|
|
|
1271
1288
|
err = js_set_element(env, values, i, result);
|
package/package.json
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|