]> git.kaiwu.me - njs.git/commitdiff
Added njs_vm_value_array_buffer_set().
authorDmitry Volyntsev <xeioex@nginx.com>
Mon, 11 Jan 2021 19:53:08 +0000 (19:53 +0000)
committerDmitry Volyntsev <xeioex@nginx.com>
Mon, 11 Jan 2021 19:53:08 +0000 (19:53 +0000)
src/njs.h
src/njs_vm.c

index 7af86fa543f4a1e7f4dae29df1e4251133a82eab..c5419251b25168da2ec49c1370118bb1fb8eaf76 100644 (file)
--- 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.
index 2aa8461b9dfa672361db21b6e3b0067a927d9e1f..dc315b9cd8ef4916e9d000d73318c9cb0c3de0a6 100644 (file)
@@ -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)