From 6842e1b8f2cf73243afdcb88b27d08fdaa861ad6 Mon Sep 17 00:00:00 2001 From: Dmitry Volyntsev Date: Wed, 13 Aug 2025 23:19:46 -0700 Subject: [PATCH] Modules: removing extra copy while streaming in qjs. --- nginx/ngx_http_js_module.c | 12 +----------- nginx/ngx_stream_js_module.c | 13 +------------ 2 files changed, 2 insertions(+), 23 deletions(-) diff --git a/nginx/ngx_http_js_module.c b/nginx/ngx_http_js_module.c index 402c7382..487c8115 100644 --- a/nginx/ngx_http_js_module.c +++ b/nginx/ngx_http_js_module.c @@ -7398,7 +7398,6 @@ ngx_http_qjs_body_filter(ngx_http_request_t *r, ngx_http_js_loc_conf_t *jlcf, ngx_http_js_ctx_t *ctx, ngx_chain_t *in) { size_t len; - u_char *p; JSAtom last_key; JSValue arguments[3], last; ngx_int_t rc; @@ -7425,16 +7424,7 @@ ngx_http_qjs_body_filter(ngx_http_request_t *r, ngx_http_js_loc_conf_t *jlcf, if (!ctx->done) { len = b->last - b->pos; - p = ngx_pnalloc(r->pool, len); - if (p == NULL) { - return NJS_ERROR; - } - - if (len) { - ngx_memcpy(p, b->pos, len); - } - - arguments[1] = ngx_qjs_prop(cx, jlcf->buffer_type, p, len); + arguments[1] = ngx_qjs_prop(cx, jlcf->buffer_type, b->pos, len); if (JS_IsException(arguments[1])) { JS_FreeAtom(cx, last_key); return NGX_ERROR; diff --git a/nginx/ngx_stream_js_module.c b/nginx/ngx_stream_js_module.c index a3a85662..a7446c49 100644 --- a/nginx/ngx_stream_js_module.c +++ b/nginx/ngx_stream_js_module.c @@ -2638,7 +2638,6 @@ ngx_stream_qjs_run_event(ngx_stream_session_t *s, ngx_stream_js_ctx_t *ctx, ngx_stream_js_ev_t *event, ngx_uint_t from_upstream) { size_t len; - u_char *p; JSContext *cx; ngx_int_t rc; ngx_str_t exception; @@ -2658,17 +2657,7 @@ ngx_stream_qjs_run_event(ngx_stream_session_t *s, ngx_stream_js_ctx_t *ctx, len = b ? b->last - b->pos : 0; - p = ngx_pnalloc(c->pool, len); - if (p == NULL) { - (void) JS_ThrowOutOfMemory(cx); - goto error; - } - - if (len) { - ngx_memcpy(p, b->pos, len); - } - - argv[0] = ngx_qjs_prop(cx, event->data_type, p, len); + argv[0] = ngx_qjs_prop(cx, event->data_type, b ? b->pos : NULL, len); if (JS_IsException(argv[0])) { goto error; } -- 2.47.3