bare-buffer 3.3.0 → 3.3.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 +49 -32
- package/global.d.ts +3 -0
- package/global.js +6 -1
- package/index.d.ts +3 -0
- package/index.js +10 -0
- package/package.json +1 -1
- package/prebuilds/android-arm/bare-buffer.bare +0 -0
- package/prebuilds/android-arm64/bare-buffer.bare +0 -0
- package/prebuilds/android-ia32/bare-buffer.bare +0 -0
- package/prebuilds/android-x64/bare-buffer.bare +0 -0
- package/prebuilds/darwin-arm64/bare-buffer.bare +0 -0
- package/prebuilds/darwin-x64/bare-buffer.bare +0 -0
- package/prebuilds/ios-arm64/bare-buffer.bare +0 -0
- package/prebuilds/ios-arm64-simulator/bare-buffer.bare +0 -0
- package/prebuilds/ios-x64-simulator/bare-buffer.bare +0 -0
- package/prebuilds/linux-arm64/bare-buffer.bare +0 -0
- package/prebuilds/linux-x64/bare-buffer.bare +0 -0
- package/prebuilds/win32-arm64/bare-buffer.bare +0 -0
- package/prebuilds/win32-x64/bare-buffer.bare +0 -0
package/binding.c
CHANGED
|
@@ -7,22 +7,26 @@
|
|
|
7
7
|
#include <string.h>
|
|
8
8
|
#include <utf.h>
|
|
9
9
|
|
|
10
|
+
static void
|
|
11
|
+
bare_buffer__on_finalize_string(js_env_t *env, void *data, void *finalize_hint) {
|
|
12
|
+
free(data);
|
|
13
|
+
}
|
|
14
|
+
|
|
10
15
|
static inline int
|
|
11
|
-
|
|
12
|
-
int
|
|
16
|
+
bare_buffer__get_info(js_env_t *env, js_value_t *buffer, void **data, size_t *len) {
|
|
17
|
+
int err;
|
|
13
18
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
19
|
+
bool is_shared;
|
|
20
|
+
err = js_is_sharedarraybuffer(env, buffer, &is_shared);
|
|
21
|
+
if (err < 0) return err;
|
|
22
|
+
|
|
23
|
+
if (is_shared) {
|
|
24
|
+
err = js_get_sharedarraybuffer_info(env, buffer, data, len);
|
|
25
|
+
} else {
|
|
26
|
+
err = js_get_arraybuffer_info(env, buffer, data, len);
|
|
18
27
|
}
|
|
19
28
|
|
|
20
|
-
return
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
static void
|
|
24
|
-
bare_buffer__on_finalize_string(js_env_t *env, void *data, void *finalize_hint) {
|
|
25
|
-
free(data);
|
|
29
|
+
return err;
|
|
26
30
|
}
|
|
27
31
|
|
|
28
32
|
static js_value_t *
|
|
@@ -122,7 +126,7 @@ bare_buffer_to_string_utf8(js_env_t *env, js_callback_info_t *info) {
|
|
|
122
126
|
assert(argc == 3);
|
|
123
127
|
|
|
124
128
|
utf8_t *buf;
|
|
125
|
-
err =
|
|
129
|
+
err = bare_buffer__get_info(env, argv[0], (void **) &buf, NULL);
|
|
126
130
|
assert(err == 0);
|
|
127
131
|
|
|
128
132
|
int64_t offset;
|
|
@@ -156,7 +160,7 @@ bare_buffer_typed_write_utf8(
|
|
|
156
160
|
assert(err == 0);
|
|
157
161
|
|
|
158
162
|
utf8_t *buf;
|
|
159
|
-
err =
|
|
163
|
+
err = bare_buffer__get_info(env, handle, (void **) &buf, NULL);
|
|
160
164
|
assert(err == 0);
|
|
161
165
|
|
|
162
166
|
size_t str_len;
|
|
@@ -179,7 +183,7 @@ bare_buffer_write_utf8(js_env_t *env, js_callback_info_t *info) {
|
|
|
179
183
|
assert(argc == 4);
|
|
180
184
|
|
|
181
185
|
utf8_t *buf;
|
|
182
|
-
err =
|
|
186
|
+
err = bare_buffer__get_info(env, argv[0], (void **) &buf, NULL);
|
|
183
187
|
assert(err == 0);
|
|
184
188
|
|
|
185
189
|
int64_t offset;
|
|
@@ -214,7 +218,7 @@ bare_buffer_to_string_utf16le(js_env_t *env, js_callback_info_t *info) {
|
|
|
214
218
|
assert(argc == 3);
|
|
215
219
|
|
|
216
220
|
utf16_t *buf;
|
|
217
|
-
err =
|
|
221
|
+
err = bare_buffer__get_info(env, argv[0], (void **) &buf, NULL);
|
|
218
222
|
assert(err == 0);
|
|
219
223
|
|
|
220
224
|
int64_t offset;
|
|
@@ -251,7 +255,7 @@ bare_buffer_typed_write_utf16le(
|
|
|
251
255
|
assert(err == 0);
|
|
252
256
|
|
|
253
257
|
utf16_t *buf;
|
|
254
|
-
err =
|
|
258
|
+
err = bare_buffer__get_info(env, handle, (void **) &buf, NULL);
|
|
255
259
|
assert(err == 0);
|
|
256
260
|
|
|
257
261
|
offset /= sizeof(utf16_t);
|
|
@@ -279,7 +283,7 @@ bare_buffer_write_utf16le(js_env_t *env, js_callback_info_t *info) {
|
|
|
279
283
|
assert(argc == 4);
|
|
280
284
|
|
|
281
285
|
utf16_t *buf;
|
|
282
|
-
err =
|
|
286
|
+
err = bare_buffer__get_info(env, argv[0], (void **) &buf, NULL);
|
|
283
287
|
assert(err == 0);
|
|
284
288
|
|
|
285
289
|
int64_t offset;
|
|
@@ -319,7 +323,7 @@ bare_buffer_to_string_latin1(js_env_t *env, js_callback_info_t *info) {
|
|
|
319
323
|
assert(argc == 3);
|
|
320
324
|
|
|
321
325
|
latin1_t *buf;
|
|
322
|
-
err =
|
|
326
|
+
err = bare_buffer__get_info(env, argv[0], (void **) &buf, NULL);
|
|
323
327
|
assert(err == 0);
|
|
324
328
|
|
|
325
329
|
int64_t offset;
|
|
@@ -353,7 +357,7 @@ bare_buffer_typed_write_latin1(
|
|
|
353
357
|
assert(err == 0);
|
|
354
358
|
|
|
355
359
|
latin1_t *buf;
|
|
356
|
-
err =
|
|
360
|
+
err = bare_buffer__get_info(env, handle, (void **) &buf, NULL);
|
|
357
361
|
assert(err == 0);
|
|
358
362
|
|
|
359
363
|
size_t str_len;
|
|
@@ -376,7 +380,7 @@ bare_buffer_write_latin1(js_env_t *env, js_callback_info_t *info) {
|
|
|
376
380
|
assert(argc == 4);
|
|
377
381
|
|
|
378
382
|
latin1_t *buf;
|
|
379
|
-
err =
|
|
383
|
+
err = bare_buffer__get_info(env, argv[0], (void **) &buf, NULL);
|
|
380
384
|
assert(err == 0);
|
|
381
385
|
|
|
382
386
|
int64_t offset;
|
|
@@ -411,7 +415,7 @@ bare_buffer_to_string_base64(js_env_t *env, js_callback_info_t *info) {
|
|
|
411
415
|
assert(argc == 3);
|
|
412
416
|
|
|
413
417
|
utf8_t *buf;
|
|
414
|
-
err =
|
|
418
|
+
err = bare_buffer__get_info(env, argv[0], (void **) &buf, NULL);
|
|
415
419
|
assert(err == 0);
|
|
416
420
|
|
|
417
421
|
int64_t offset;
|
|
@@ -450,7 +454,7 @@ bare_buffer_to_string_base64url(js_env_t *env, js_callback_info_t *info) {
|
|
|
450
454
|
assert(argc == 3);
|
|
451
455
|
|
|
452
456
|
utf8_t *buf;
|
|
453
|
-
err =
|
|
457
|
+
err = bare_buffer__get_info(env, argv[0], (void **) &buf, NULL);
|
|
454
458
|
assert(err == 0);
|
|
455
459
|
|
|
456
460
|
int64_t offset;
|
|
@@ -492,7 +496,7 @@ bare_buffer_typed_write_base64(
|
|
|
492
496
|
assert(err == 0);
|
|
493
497
|
|
|
494
498
|
utf8_t *buf;
|
|
495
|
-
err =
|
|
499
|
+
err = bare_buffer__get_info(env, handle, (void **) &buf, NULL);
|
|
496
500
|
assert(err == 0);
|
|
497
501
|
|
|
498
502
|
js_string_encoding_t encoding;
|
|
@@ -540,7 +544,7 @@ bare_buffer_write_base64(js_env_t *env, js_callback_info_t *info) {
|
|
|
540
544
|
assert(argc == 4);
|
|
541
545
|
|
|
542
546
|
utf8_t *buf;
|
|
543
|
-
err =
|
|
547
|
+
err = bare_buffer__get_info(env, argv[0], (void **) &buf, NULL);
|
|
544
548
|
assert(err == 0);
|
|
545
549
|
|
|
546
550
|
int64_t offset;
|
|
@@ -600,7 +604,7 @@ bare_buffer_to_string_hex(js_env_t *env, js_callback_info_t *info) {
|
|
|
600
604
|
assert(argc == 3);
|
|
601
605
|
|
|
602
606
|
utf8_t *buf;
|
|
603
|
-
err =
|
|
607
|
+
err = bare_buffer__get_info(env, argv[0], (void **) &buf, NULL);
|
|
604
608
|
assert(err == 0);
|
|
605
609
|
|
|
606
610
|
int64_t offset;
|
|
@@ -642,7 +646,7 @@ bare_buffer_typed_write_hex(
|
|
|
642
646
|
assert(err == 0);
|
|
643
647
|
|
|
644
648
|
utf8_t *buf;
|
|
645
|
-
err =
|
|
649
|
+
err = bare_buffer__get_info(env, handle, (void **) &buf, NULL);
|
|
646
650
|
assert(err == 0);
|
|
647
651
|
|
|
648
652
|
js_string_encoding_t encoding;
|
|
@@ -690,7 +694,7 @@ bare_buffer_write_hex(js_env_t *env, js_callback_info_t *info) {
|
|
|
690
694
|
assert(argc == 4);
|
|
691
695
|
|
|
692
696
|
utf8_t *buf;
|
|
693
|
-
err =
|
|
697
|
+
err = bare_buffer__get_info(env, argv[0], (void **) &buf, NULL);
|
|
694
698
|
assert(err == 0);
|
|
695
699
|
|
|
696
700
|
int64_t offset;
|
|
@@ -737,6 +741,19 @@ bare_buffer_write_hex(js_env_t *env, js_callback_info_t *info) {
|
|
|
737
741
|
return result;
|
|
738
742
|
}
|
|
739
743
|
|
|
744
|
+
static inline int
|
|
745
|
+
bare_buffer__memcmp(void *a, size_t a_len, void *b, size_t b_len) {
|
|
746
|
+
int r = memcmp(a, b, a_len < b_len ? a_len : b_len);
|
|
747
|
+
|
|
748
|
+
if (r == 0) {
|
|
749
|
+
if (a_len < b_len) return -1;
|
|
750
|
+
if (a_len > b_len) return 1;
|
|
751
|
+
return 0;
|
|
752
|
+
}
|
|
753
|
+
|
|
754
|
+
return r < 0 ? -1 : 1;
|
|
755
|
+
}
|
|
756
|
+
|
|
740
757
|
static int32_t
|
|
741
758
|
bare_buffer_typed_compare(
|
|
742
759
|
js_value_t *receiver,
|
|
@@ -755,11 +772,11 @@ bare_buffer_typed_compare(
|
|
|
755
772
|
assert(err == 0);
|
|
756
773
|
|
|
757
774
|
uint8_t *a;
|
|
758
|
-
err =
|
|
775
|
+
err = bare_buffer__get_info(env, a_handle, (void **) &a, NULL);
|
|
759
776
|
assert(err == 0);
|
|
760
777
|
|
|
761
778
|
uint8_t *b;
|
|
762
|
-
err =
|
|
779
|
+
err = bare_buffer__get_info(env, b_handle, (void **) &b, NULL);
|
|
763
780
|
assert(err == 0);
|
|
764
781
|
|
|
765
782
|
return bare_buffer__memcmp(&a[a_offset], a_len, &b[b_offset], b_len);
|
|
@@ -778,7 +795,7 @@ bare_buffer_compare(js_env_t *env, js_callback_info_t *info) {
|
|
|
778
795
|
assert(argc == 6);
|
|
779
796
|
|
|
780
797
|
uint8_t *a;
|
|
781
|
-
err =
|
|
798
|
+
err = bare_buffer__get_info(env, argv[0], (void **) &a, NULL);
|
|
782
799
|
assert(err == 0);
|
|
783
800
|
|
|
784
801
|
int64_t a_offset;
|
|
@@ -790,7 +807,7 @@ bare_buffer_compare(js_env_t *env, js_callback_info_t *info) {
|
|
|
790
807
|
assert(err == 0);
|
|
791
808
|
|
|
792
809
|
uint8_t *b;
|
|
793
|
-
err =
|
|
810
|
+
err = bare_buffer__get_info(env, argv[3], (void **) &b, NULL);
|
|
794
811
|
assert(err == 0);
|
|
795
812
|
|
|
796
813
|
int64_t b_offset;
|
package/global.d.ts
CHANGED
package/global.js
CHANGED
package/index.d.ts
CHANGED
package/index.js
CHANGED
|
@@ -742,3 +742,13 @@ function swap(buffer, n, m) {
|
|
|
742
742
|
buffer[n] = buffer[m]
|
|
743
743
|
buffer[m] = i
|
|
744
744
|
}
|
|
745
|
+
|
|
746
|
+
exports.atob = function atob(data) {
|
|
747
|
+
return Buffer.from(data, 'base64').toString('latin1')
|
|
748
|
+
}
|
|
749
|
+
|
|
750
|
+
exports.btoa = function btoa(data) {
|
|
751
|
+
if (typeof data !== 'string') data = String(data)
|
|
752
|
+
|
|
753
|
+
return Buffer.from(data, 'latin1').toString('base64')
|
|
754
|
+
}
|
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
|