bare-buffer 3.1.2 → 3.1.3
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 +70 -47
- package/index.js +42 -18
- 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
|
@@ -143,18 +143,20 @@ bare_buffer_typed_write_utf8(js_value_t *receiver, js_value_t *typedarray, js_va
|
|
|
143
143
|
err = js_get_typed_callback_info(info, &env, NULL);
|
|
144
144
|
assert(err == 0);
|
|
145
145
|
|
|
146
|
+
js_handle_scope_t *scope;
|
|
147
|
+
err = js_open_handle_scope(env, &scope);
|
|
148
|
+
assert(err == 0);
|
|
149
|
+
|
|
146
150
|
void *buf;
|
|
147
151
|
size_t buf_len;
|
|
148
|
-
|
|
149
|
-
js_typedarray_view_t *buf_view;
|
|
150
|
-
err = js_get_typedarray_view(env, typedarray, NULL, &buf, &buf_len, &buf_view);
|
|
152
|
+
err = js_get_typedarray_info(env, typedarray, NULL, &buf, &buf_len, NULL, NULL);
|
|
151
153
|
assert(err == 0);
|
|
152
154
|
|
|
153
155
|
size_t str_len;
|
|
154
156
|
err = js_get_value_string_utf8(env, string, buf, buf_len, &str_len);
|
|
155
157
|
assert(err == 0);
|
|
156
158
|
|
|
157
|
-
err =
|
|
159
|
+
err = js_close_handle_scope(env, scope);
|
|
158
160
|
assert(err == 0);
|
|
159
161
|
|
|
160
162
|
return (uint32_t) str_len;
|
|
@@ -222,11 +224,13 @@ bare_buffer_typed_write_utf16le(js_value_t *receiver, js_value_t *typedarray, js
|
|
|
222
224
|
err = js_get_typed_callback_info(info, &env, NULL);
|
|
223
225
|
assert(err == 0);
|
|
224
226
|
|
|
227
|
+
js_handle_scope_t *scope;
|
|
228
|
+
err = js_open_handle_scope(env, &scope);
|
|
229
|
+
assert(err == 0);
|
|
230
|
+
|
|
225
231
|
void *buf;
|
|
226
232
|
size_t buf_len;
|
|
227
|
-
|
|
228
|
-
js_typedarray_view_t *buf_view;
|
|
229
|
-
err = js_get_typedarray_view(env, typedarray, NULL, &buf, &buf_len, &buf_view);
|
|
233
|
+
err = js_get_typedarray_info(env, typedarray, NULL, &buf, &buf_len, NULL, NULL);
|
|
230
234
|
assert(err == 0);
|
|
231
235
|
|
|
232
236
|
buf_len /= sizeof(utf16_t);
|
|
@@ -237,7 +241,7 @@ bare_buffer_typed_write_utf16le(js_value_t *receiver, js_value_t *typedarray, js
|
|
|
237
241
|
|
|
238
242
|
str_len *= sizeof(utf16_t);
|
|
239
243
|
|
|
240
|
-
err =
|
|
244
|
+
err = js_close_handle_scope(env, scope);
|
|
241
245
|
assert(err == 0);
|
|
242
246
|
|
|
243
247
|
return (uint32_t) str_len;
|
|
@@ -307,18 +311,20 @@ bare_buffer_typed_write_latin1(js_value_t *receiver, js_value_t *typedarray, js_
|
|
|
307
311
|
err = js_get_typed_callback_info(info, &env, NULL);
|
|
308
312
|
assert(err == 0);
|
|
309
313
|
|
|
314
|
+
js_handle_scope_t *scope;
|
|
315
|
+
err = js_open_handle_scope(env, &scope);
|
|
316
|
+
assert(err == 0);
|
|
317
|
+
|
|
310
318
|
void *buf;
|
|
311
319
|
size_t buf_len;
|
|
312
|
-
|
|
313
|
-
js_typedarray_view_t *buf_view;
|
|
314
|
-
err = js_get_typedarray_view(env, typedarray, NULL, &buf, &buf_len, &buf_view);
|
|
320
|
+
err = js_get_typedarray_info(env, typedarray, NULL, &buf, &buf_len, NULL, NULL);
|
|
315
321
|
assert(err == 0);
|
|
316
322
|
|
|
317
323
|
size_t str_len;
|
|
318
324
|
err = js_get_value_string_latin1(env, string, buf, buf_len, &str_len);
|
|
319
325
|
assert(err == 0);
|
|
320
326
|
|
|
321
|
-
err =
|
|
327
|
+
err = js_close_handle_scope(env, scope);
|
|
322
328
|
assert(err == 0);
|
|
323
329
|
|
|
324
330
|
return (uint32_t) str_len;
|
|
@@ -392,11 +398,13 @@ bare_buffer_typed_write_base64(js_value_t *receiver, js_value_t *typedarray, js_
|
|
|
392
398
|
err = js_get_typed_callback_info(info, &env, NULL);
|
|
393
399
|
assert(err == 0);
|
|
394
400
|
|
|
401
|
+
js_handle_scope_t *scope;
|
|
402
|
+
err = js_open_handle_scope(env, &scope);
|
|
403
|
+
assert(err == 0);
|
|
404
|
+
|
|
395
405
|
void *buf;
|
|
396
406
|
size_t buf_len;
|
|
397
|
-
|
|
398
|
-
js_typedarray_view_t *buf_view;
|
|
399
|
-
err = js_get_typedarray_view(env, typedarray, NULL, &buf, &buf_len, &buf_view);
|
|
407
|
+
err = js_get_typedarray_info(env, typedarray, NULL, &buf, &buf_len, NULL, NULL);
|
|
400
408
|
assert(err == 0);
|
|
401
409
|
|
|
402
410
|
js_string_encoding_t encoding;
|
|
@@ -418,7 +426,7 @@ bare_buffer_typed_write_base64(js_value_t *receiver, js_value_t *typedarray, js_
|
|
|
418
426
|
err = js_release_string_view(env, str_view);
|
|
419
427
|
assert(err == 0);
|
|
420
428
|
|
|
421
|
-
err =
|
|
429
|
+
err = js_close_handle_scope(env, scope);
|
|
422
430
|
assert(err == 0);
|
|
423
431
|
|
|
424
432
|
return buf_len;
|
|
@@ -507,11 +515,13 @@ bare_buffer_typed_write_hex(js_value_t *receiver, js_value_t *typedarray, js_val
|
|
|
507
515
|
err = js_get_typed_callback_info(info, &env, NULL);
|
|
508
516
|
assert(err == 0);
|
|
509
517
|
|
|
518
|
+
js_handle_scope_t *scope;
|
|
519
|
+
err = js_open_handle_scope(env, &scope);
|
|
520
|
+
assert(err == 0);
|
|
521
|
+
|
|
510
522
|
void *buf;
|
|
511
523
|
size_t buf_len;
|
|
512
|
-
|
|
513
|
-
js_typedarray_view_t *buf_view;
|
|
514
|
-
err = js_get_typedarray_view(env, typedarray, NULL, &buf, &buf_len, &buf_view);
|
|
524
|
+
err = js_get_typedarray_info(env, typedarray, NULL, &buf, &buf_len, NULL, NULL);
|
|
515
525
|
assert(err == 0);
|
|
516
526
|
|
|
517
527
|
js_string_encoding_t encoding;
|
|
@@ -533,7 +543,7 @@ bare_buffer_typed_write_hex(js_value_t *receiver, js_value_t *typedarray, js_val
|
|
|
533
543
|
err = js_release_string_view(env, str_view);
|
|
534
544
|
assert(err == 0);
|
|
535
545
|
|
|
536
|
-
err =
|
|
546
|
+
err = js_close_handle_scope(env, scope);
|
|
537
547
|
assert(err == 0);
|
|
538
548
|
|
|
539
549
|
return buf_len;
|
|
@@ -583,7 +593,16 @@ bare_buffer_write_hex(js_env_t *env, js_callback_info_t *info) {
|
|
|
583
593
|
}
|
|
584
594
|
|
|
585
595
|
static int32_t
|
|
586
|
-
bare_buffer_typed_compare(
|
|
596
|
+
bare_buffer_typed_compare(
|
|
597
|
+
js_value_t *receiver,
|
|
598
|
+
js_value_t *a_handle,
|
|
599
|
+
uint32_t a_offset,
|
|
600
|
+
uint32_t a_len,
|
|
601
|
+
js_value_t *b_handle,
|
|
602
|
+
uint32_t b_offset,
|
|
603
|
+
uint32_t b_len,
|
|
604
|
+
js_typed_callback_info_t *info
|
|
605
|
+
) {
|
|
587
606
|
int err;
|
|
588
607
|
|
|
589
608
|
js_env_t *env;
|
|
@@ -591,54 +610,54 @@ bare_buffer_typed_compare(js_value_t *receiver, js_value_t *source, js_value_t *
|
|
|
591
610
|
assert(err == 0);
|
|
592
611
|
|
|
593
612
|
void *a;
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
js_typedarray_view_t *a_view;
|
|
597
|
-
err = js_get_typedarray_view(env, source, NULL, &a, &a_len, &a_view);
|
|
613
|
+
err = js_get_arraybuffer_info(env, a_handle, &a, NULL);
|
|
598
614
|
assert(err == 0);
|
|
599
615
|
|
|
600
616
|
void *b;
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
js_typedarray_view_t *b_view;
|
|
604
|
-
err = js_get_typedarray_view(env, target, NULL, &b, &b_len, &b_view);
|
|
617
|
+
err = js_get_arraybuffer_info(env, b_handle, &b, NULL);
|
|
605
618
|
assert(err == 0);
|
|
606
619
|
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
err = js_release_typedarray_view(env, a_view);
|
|
610
|
-
assert(err == 0);
|
|
611
|
-
|
|
612
|
-
err = js_release_typedarray_view(env, b_view);
|
|
613
|
-
assert(err == 0);
|
|
614
|
-
|
|
615
|
-
return result;
|
|
620
|
+
return bare_buffer__memcmp(&a[a_offset], a_len, &b[b_offset], b_len);
|
|
616
621
|
}
|
|
617
622
|
|
|
618
623
|
static js_value_t *
|
|
619
624
|
bare_buffer_compare(js_env_t *env, js_callback_info_t *info) {
|
|
620
625
|
int err;
|
|
621
626
|
|
|
622
|
-
size_t argc =
|
|
623
|
-
js_value_t *argv[
|
|
627
|
+
size_t argc = 6;
|
|
628
|
+
js_value_t *argv[6];
|
|
624
629
|
|
|
625
630
|
err = js_get_callback_info(env, info, &argc, argv, NULL, NULL);
|
|
626
631
|
assert(err == 0);
|
|
627
632
|
|
|
628
|
-
assert(argc ==
|
|
633
|
+
assert(argc == 6);
|
|
629
634
|
|
|
630
635
|
void *a;
|
|
631
|
-
|
|
632
|
-
err
|
|
636
|
+
err = js_get_arraybuffer_info(env, argv[0], &a, NULL);
|
|
637
|
+
assert(err == 0);
|
|
638
|
+
|
|
639
|
+
uint32_t a_offset;
|
|
640
|
+
err = js_get_value_uint32(env, argv[1], &a_offset);
|
|
641
|
+
assert(err == 0);
|
|
642
|
+
|
|
643
|
+
uint32_t a_len;
|
|
644
|
+
err = js_get_value_uint32(env, argv[2], &a_len);
|
|
633
645
|
assert(err == 0);
|
|
634
646
|
|
|
635
647
|
void *b;
|
|
636
|
-
|
|
637
|
-
err
|
|
648
|
+
err = js_get_arraybuffer_info(env, argv[3], &b, NULL);
|
|
649
|
+
assert(err == 0);
|
|
650
|
+
|
|
651
|
+
uint32_t b_offset;
|
|
652
|
+
err = js_get_value_uint32(env, argv[4], &b_offset);
|
|
653
|
+
assert(err == 0);
|
|
654
|
+
|
|
655
|
+
uint32_t b_len;
|
|
656
|
+
err = js_get_value_uint32(env, argv[5], &b_len);
|
|
638
657
|
assert(err == 0);
|
|
639
658
|
|
|
640
659
|
js_value_t *result;
|
|
641
|
-
err = js_create_int32(env, bare_buffer__memcmp(a, a_len, b, b_len), &result);
|
|
660
|
+
err = js_create_int32(env, bare_buffer__memcmp(&a[a_offset], a_len, &b[b_offset], b_len), &result);
|
|
642
661
|
assert(err == 0);
|
|
643
662
|
|
|
644
663
|
return result;
|
|
@@ -818,11 +837,15 @@ bare_buffer_exports(js_env_t *env, js_value_t *exports) {
|
|
|
818
837
|
&((js_callback_signature_t) {
|
|
819
838
|
.version = 0,
|
|
820
839
|
.result = js_int32,
|
|
821
|
-
.args_len =
|
|
840
|
+
.args_len = 7,
|
|
822
841
|
.args = (int[]) {
|
|
823
842
|
js_object,
|
|
824
843
|
js_object,
|
|
844
|
+
js_uint32,
|
|
845
|
+
js_uint32,
|
|
825
846
|
js_object,
|
|
847
|
+
js_uint32,
|
|
848
|
+
js_uint32,
|
|
826
849
|
}
|
|
827
850
|
}),
|
|
828
851
|
bare_buffer_typed_compare
|
package/index.js
CHANGED
|
@@ -104,7 +104,16 @@ module.exports = exports = class Buffer extends Uint8Array {
|
|
|
104
104
|
|
|
105
105
|
if (source.byteLength !== target.byteLength) return false
|
|
106
106
|
|
|
107
|
-
return
|
|
107
|
+
return (
|
|
108
|
+
binding.compare(
|
|
109
|
+
source.buffer,
|
|
110
|
+
source.byteOffset,
|
|
111
|
+
source.byteLength,
|
|
112
|
+
target.buffer,
|
|
113
|
+
target.byteOffset,
|
|
114
|
+
target.byteLength
|
|
115
|
+
) === 0
|
|
116
|
+
)
|
|
108
117
|
}
|
|
109
118
|
|
|
110
119
|
compare(
|
|
@@ -118,29 +127,36 @@ module.exports = exports = class Buffer extends Uint8Array {
|
|
|
118
127
|
|
|
119
128
|
if (source === target) return 0
|
|
120
129
|
|
|
121
|
-
if (arguments.length
|
|
130
|
+
if (arguments.length > 1) {
|
|
131
|
+
if (targetStart < 0) targetStart = 0
|
|
132
|
+
if (targetStart > target.byteLength) targetStart = target.byteLength
|
|
122
133
|
|
|
123
|
-
|
|
124
|
-
|
|
134
|
+
if (targetEnd < targetStart) targetEnd = targetStart
|
|
135
|
+
if (targetEnd > target.byteLength) targetEnd = target.byteLength
|
|
125
136
|
|
|
126
|
-
|
|
127
|
-
|
|
137
|
+
if (sourceStart < 0) sourceStart = 0
|
|
138
|
+
if (sourceStart > source.byteLength) sourceStart = source.byteLength
|
|
128
139
|
|
|
129
|
-
|
|
130
|
-
|
|
140
|
+
if (sourceEnd < sourceStart) sourceEnd = sourceStart
|
|
141
|
+
if (sourceEnd > source.byteLength) sourceEnd = source.byteLength
|
|
131
142
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
if (sourceStart !== 0 || sourceEnd !== source.byteLength) {
|
|
136
|
-
source = source.subarray(sourceStart, sourceEnd)
|
|
137
|
-
}
|
|
143
|
+
if (sourceStart !== 0 || sourceEnd !== source.byteLength) {
|
|
144
|
+
source = source.subarray(sourceStart, sourceEnd)
|
|
145
|
+
}
|
|
138
146
|
|
|
139
|
-
|
|
140
|
-
|
|
147
|
+
if (targetStart !== 0 || targetEnd !== target.byteLength) {
|
|
148
|
+
target = target.subarray(targetStart, targetEnd)
|
|
149
|
+
}
|
|
141
150
|
}
|
|
142
151
|
|
|
143
|
-
return binding.compare(
|
|
152
|
+
return binding.compare(
|
|
153
|
+
source.buffer,
|
|
154
|
+
source.byteOffset,
|
|
155
|
+
source.byteLength,
|
|
156
|
+
target.buffer,
|
|
157
|
+
target.byteOffset,
|
|
158
|
+
target.byteLength
|
|
159
|
+
)
|
|
144
160
|
}
|
|
145
161
|
|
|
146
162
|
fill(value, offset = 0, end = this.byteLength, encoding = 'utf8') {
|
|
@@ -545,6 +561,7 @@ function viewOf(buffer) {
|
|
|
545
561
|
}
|
|
546
562
|
|
|
547
563
|
exports.isBuffer = function isBuffer(value) {
|
|
564
|
+
if (value instanceof Buffer) return true
|
|
548
565
|
if (typeof value !== 'object' || value === null) return false
|
|
549
566
|
|
|
550
567
|
let constructor = value.constructor
|
|
@@ -590,7 +607,14 @@ exports.byteLength = function byteLength(string, encoding) {
|
|
|
590
607
|
}
|
|
591
608
|
|
|
592
609
|
exports.compare = function compare(a, b) {
|
|
593
|
-
return binding.compare(
|
|
610
|
+
return binding.compare(
|
|
611
|
+
a.buffer,
|
|
612
|
+
a.byteOffset,
|
|
613
|
+
a.byteLength,
|
|
614
|
+
b.buffer,
|
|
615
|
+
b.byteOffset,
|
|
616
|
+
b.byteLength
|
|
617
|
+
)
|
|
594
618
|
}
|
|
595
619
|
|
|
596
620
|
exports.concat = function concat(buffers, length) {
|
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
|