]> git.kaiwu.me - njs.git/commitdiff
The njs_vm_trap_value() macro.
authorIgor Sysoev <igor@sysoev.ru>
Tue, 21 Mar 2017 13:35:36 +0000 (16:35 +0300)
committerIgor Sysoev <igor@sysoev.ru>
Tue, 21 Mar 2017 13:35:36 +0000 (16:35 +0300)
njs/njs_array.c
njs/njs_date.c
njs/njs_function.h
njs/njs_math.c
njs/njs_string.c
njs/njs_vm.c

index 80c1f17f200a469360b7daf672a20864c34f58a9..0b85a12ddcfc741710a128d813b1731b16ca8d08 100644 (file)
@@ -840,7 +840,7 @@ njs_array_prototype_join_continuation(njs_vm_t *vm, njs_value_t *args,
                 value = &values[n++];
 
                 if (!njs_is_string(value)) {
-                    vm->frame->trap_scratch.data.u.value = value;
+                    njs_vm_trap_value(vm, value);
 
                     return NJS_TRAP_STRING_ARG;
                 }
@@ -1733,7 +1733,7 @@ njs_array_string_sort(njs_vm_t *vm, njs_value_t *args,
 
     for (i = 1; i < nargs; i++) {
         if (!njs_is_string(&args[i])) {
-            vm->frame->trap_scratch.data.u.value = &args[i];
+            njs_vm_trap_value(vm, &args[i]);
             return NJS_TRAP_STRING_ARG;
         }
     }
index 48286bc88f249abc4da3dd5933d4995fad484271..e1bcec111a218270d3eddabfab26cb1740b80d5d 100644 (file)
@@ -108,7 +108,7 @@ njs_date_constructor(njs_vm_t *vm, njs_value_t *args, nxt_uint_t nargs,
 
             for (i = 1; i < n; i++) {
                 if (!njs_is_numeric(&args[i])) {
-                    vm->frame->trap_scratch.data.u.value = &args[i];
+                    njs_vm_trap_value(vm, &args[i]);
                     return NJS_TRAP_NUMBER_ARG;
                 }
 
@@ -187,7 +187,7 @@ njs_date_utc(njs_vm_t *vm, njs_value_t *args, nxt_uint_t nargs,
 
         for (i = 1; i < n; i++) {
             if (!njs_is_numeric(&args[i])) {
-                vm->frame->trap_scratch.data.u.value = &args[i];
+                njs_vm_trap_value(vm, &args[i]);
                 return NJS_TRAP_NUMBER_ARG;
             }
 
index ca8ba9434ad1f53241d25d444832ab35b2531d46..c30fd171ba8891a4f232352a3c75c8da1c07a1c8 100644 (file)
@@ -68,6 +68,11 @@ typedef struct {
 #define NJS_CONTINUATION_SIZE      njs_continuation_size(njs_continuation_t)
 
 
+#define njs_vm_trap_value(vm, val)                                            \
+    (vm)->frame->trap_scratch.data.u.value = val
+
+
+
 typedef struct njs_exception_s     njs_exception_t;
 
 struct njs_exception_s {
index 4bd636ab8e779a15ebf6a6fe1dcd7b2007554015..500540c2111a6735428518a10679558c4eaa736d 100644 (file)
@@ -376,7 +376,7 @@ njs_object_math_hypot(njs_vm_t *vm, njs_value_t *args, nxt_uint_t nargs,
 
     for (i = 1; i < nargs; i++) {
         if (!njs_is_numeric(&args[i])) {
-            vm->frame->trap_scratch.data.u.value = &args[i];
+            njs_vm_trap_value(vm, &args[i]);
 
             return NJS_TRAP_NUMBER_ARG;
         }
@@ -516,7 +516,7 @@ njs_object_math_max(njs_vm_t *vm, njs_value_t *args, nxt_uint_t nargs,
     if (nargs > 1) {
         for (i = 1; i < nargs; i++) {
             if (!njs_is_numeric(&args[i])) {
-                vm->frame->trap_scratch.data.u.value = &args[i];
+                njs_vm_trap_value(vm, &args[i]);
                 return NJS_TRAP_NUMBER_ARG;
             }
         }
@@ -547,7 +547,7 @@ njs_object_math_min(njs_vm_t *vm, njs_value_t *args, nxt_uint_t nargs,
     if (nargs > 1) {
         for (i = 1; i < nargs; i++) {
             if (!njs_is_numeric(&args[i])) {
-                vm->frame->trap_scratch.data.u.value = &args[i];
+                njs_vm_trap_value(vm, &args[i]);
                 return NJS_TRAP_NUMBER_ARG;
             }
         }
index 47bd87bdc23fdc641baaec1cab54b2c360351c0d..39c8806f19b3a053f420670d92116fd35a13ac3d 100644 (file)
@@ -581,7 +581,7 @@ njs_string_prototype_concat(njs_vm_t *vm, njs_value_t *args, nxt_uint_t nargs,
 
     for (i = 0; i < nargs; i++) {
         if (!njs_is_string(&args[i])) {
-            vm->frame->trap_scratch.data.u.value = &args[i];
+            njs_vm_trap_value(vm, &args[i]);
 
             return NJS_TRAP_STRING_ARG;
         }
@@ -1130,7 +1130,7 @@ njs_string_from_char_code(njs_vm_t *vm, njs_value_t *args,
 
     for (i = 1; i < nargs; i++) {
         if (!njs_is_numeric(&args[i])) {
-            vm->frame->trap_scratch.data.u.value = &args[i];
+            njs_vm_trap_value(vm, &args[i]);
             return NJS_TRAP_NUMBER_ARG;
         }
     }
index 1232f836847477611c90fcee894a650b99025f75..c926d5b14c0c54b3fb7d630eb47f1f72c1cd95d3 100644 (file)
@@ -2518,7 +2518,7 @@ njs_normalize_args(njs_vm_t *vm, njs_value_t *args, uint8_t *args_types,
 
 trap:
 
-    vm->frame->trap_scratch.data.u.value = args;
+    njs_vm_trap_value(vm, args);
 
     return trap;