Welcome! Log In Create A New Profile

Advanced

[njs] QuickJS: accept ArrayBuffer as an arument for qjs_typed_array_data().

This forum is currently read only. You can not log in or make any changes. This is a temporary situation.
Anonymous User
January 22, 2025 07:08PM
details: https://github.com/nginx/njs/commit/1a482317e65d52cdaa9f0e8bff0a8e624f359b9e
branches: master
commit: 1a482317e65d52cdaa9f0e8bff0a8e624f359b9e
user: Dmitry Volyntsev <xeioex@nginx.com>
date: Mon, 13 Jan 2025 22:00:10 -0800
description:
QuickJS: accept ArrayBuffer as an arument for qjs_typed_array_data().


---
src/qjs.c | 20 ++++++++++++++------
1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/src/qjs.c b/src/qjs.c
index f9615668..487a03fc 100644
--- a/src/qjs.c
+++ b/src/qjs.c
@@ -456,17 +456,25 @@ qjs_bytes_free(JSContext *ctx, qjs_bytes_t *bytes)
JSValue
qjs_typed_array_data(JSContext *ctx, JSValueConst value, njs_str_t *data)
{
- size_t byte_offset, byte_length;
+ size_t byte_offset, byte_length;
+ JSValue ab;
+
+ /* TODO: DataView. */

- value = JS_GetTypedArrayBuffer(ctx, value, &byte_offset, &byte_length,
+ ab = JS_GetTypedArrayBuffer(ctx, value, &byte_offset, &byte_length,
NULL);
- if (JS_IsException(value)) {
- return value;
+ if (JS_IsException(ab)) {
+ data->start = JS_GetArrayBuffer(ctx, &data->length, value);
+ if (data->start == NULL) {
+ return JS_EXCEPTION;
+ }
+
+ return JS_UNDEFINED;
}

- data->start = JS_GetArrayBuffer(ctx, &data->length, value);
+ data->start = JS_GetArrayBuffer(ctx, &data->length, ab);

- JS_FreeValue(ctx, value);
+ JS_FreeValue(ctx, ab);

if (data->start == NULL) {
return JS_EXCEPTION;
_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[njs] QuickJS: accept ArrayBuffer as an arument for qjs_typed_array_data().

Anonymous User 95 January 22, 2025 07:08PM



Online Users

Guests: 311
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 500 on July 15, 2024
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready