From f648500997f2e0e8335053eae1239cb5f54bb7f9 Mon Sep 17 00:00:00 2001 From: Dmitry Volyntsev Date: Mon, 11 Jan 2021 19:53:08 +0000 Subject: [PATCH] Added njs_vm_value_array_buffer_set(). --- src/njs.h | 3 +++ src/njs_vm.c | 20 ++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/src/njs.h b/src/njs.h index 7af86fa5..c5419251 100644 --- a/src/njs.h +++ b/src/njs.h @@ -331,6 +331,9 @@ NJS_EXPORT u_char *njs_vm_value_string_alloc(njs_vm_t *vm, njs_value_t *value, NJS_EXPORT njs_int_t njs_vm_value_string_copy(njs_vm_t *vm, njs_str_t *retval, njs_value_t *value, uintptr_t *next); +NJS_EXPORT njs_int_t njs_vm_value_array_buffer_set(njs_vm_t *vm, + njs_value_t *value, const u_char *start, uint32_t size); + /* * Sets a Buffer value. * start data is not copied and should not be freed. diff --git a/src/njs_vm.c b/src/njs_vm.c index 2aa8461b..dc315b9c 100644 --- a/src/njs_vm.c +++ b/src/njs_vm.c @@ -732,6 +732,26 @@ njs_vm_value_string_set(njs_vm_t *vm, njs_value_t *value, const u_char *start, } +njs_int_t +njs_vm_value_array_buffer_set(njs_vm_t *vm, njs_value_t *value, + const u_char *start, uint32_t size) +{ + njs_array_buffer_t *array; + + array = njs_array_buffer_alloc(vm, 0, 0); + if (njs_slow_path(array == NULL)) { + return NJS_ERROR; + } + + array->u.data = (u_char *) start; + array->size = size; + + njs_set_array_buffer(value, array); + + return NJS_OK; +} + + njs_int_t njs_vm_value_buffer_set(njs_vm_t *vm, njs_value_t *value, const u_char *start, uint32_t size) -- 2.47.3