]> git.kaiwu.me - njs.git/commitdiff
Added shortcuts for creating errors from the outside of a VM.
authorDmitry Volyntsev <xeioex@nginx.com>
Mon, 9 Apr 2018 18:02:10 +0000 (21:02 +0300)
committerDmitry Volyntsev <xeioex@nginx.com>
Mon, 9 Apr 2018 18:02:10 +0000 (21:02 +0300)
njs_vm_error(), njs_vm_memory_error().

njs/njscript.c
njs/njscript.h

index aea0e2ac67e10f77bb6ef351f9faad94d9ffa13a..19e407305bde95d84bc28e72c2e426cf43248dc2 100644 (file)
@@ -682,6 +682,13 @@ njs_vm_retval_set(njs_vm_t *vm, njs_opaque_value_t *value)
 }
 
 
+nxt_noinline void
+njs_vm_memory_error(njs_vm_t *vm)
+{
+    njs_set_memory_error(vm, &vm->retval);
+}
+
+
 njs_ret_t njs_vm_retval_to_ext_string(njs_vm_t *vm, nxt_str_t *retval)
 {
     if (vm->top_frame == NULL) {
index 9ef6a392cbbb6717b2749f67fd25f30a8ef9b0a7..4ec94da36fd7543818e45a928678ba5d855f316c 100644 (file)
@@ -29,6 +29,9 @@ typedef struct {
 #define njs_argument(args, n)                                                 \
     (njs_value_t *) ((u_char *) args + n * 16)
 
+#define njs_vm_error(vm, fmt, ...)                                            \
+    njs_value_error_set(vm, njs_vm_retval(vm), fmt, ##__VA_ARGS__)
+
 
 typedef njs_ret_t (*njs_extern_get_t)(njs_vm_t *vm, njs_value_t *value,
     void *obj, uintptr_t data);
@@ -176,6 +179,8 @@ NXT_EXPORT njs_ret_t njs_vm_value_to_ext_string(njs_vm_t *vm, nxt_str_t *dst,
 NXT_EXPORT njs_ret_t njs_vm_retval_to_ext_string(njs_vm_t *vm,
         nxt_str_t *retval);
 
+NXT_EXPORT void njs_vm_memory_error(njs_vm_t *vm);
+
 NXT_EXPORT void njs_value_void_set(njs_value_t *value);
 NXT_EXPORT void njs_value_boolean_set(njs_value_t *value, int yn);
 NXT_EXPORT void njs_value_number_set(njs_value_t *value, double num);