From: Dmitry Volyntsev Date: Mon, 11 Jan 2021 19:53:08 +0000 (+0000) Subject: Added njs_vm_value_array_buffer_set(). X-Git-Tag: 0.5.1~16 X-Git-Url: http://www.kaiwu.me/postgresql/commit/?a=commitdiff_plain;h=f648500997f2e0e8335053eae1239cb5f54bb7f9;p=njs.git Added njs_vm_value_array_buffer_set(). --- 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)