From: Igor Sysoev Date: Tue, 21 Mar 2017 13:35:36 +0000 (+0300) Subject: The njs_vm_trap_value() macro. X-Git-Tag: 0.1.10~19 X-Git-Url: http://www.kaiwu.me/postgresql/commit/?a=commitdiff_plain;h=9829b07d4f471380fc4b2a07e2867e7b0c04cd69;p=njs.git The njs_vm_trap_value() macro. --- diff --git a/njs/njs_array.c b/njs/njs_array.c index 80c1f17f..0b85a12d 100644 --- a/njs/njs_array.c +++ b/njs/njs_array.c @@ -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; } } diff --git a/njs/njs_date.c b/njs/njs_date.c index 48286bc8..e1bcec11 100644 --- a/njs/njs_date.c +++ b/njs/njs_date.c @@ -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; } diff --git a/njs/njs_function.h b/njs/njs_function.h index ca8ba943..c30fd171 100644 --- a/njs/njs_function.h +++ b/njs/njs_function.h @@ -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 { diff --git a/njs/njs_math.c b/njs/njs_math.c index 4bd636ab..500540c2 100644 --- a/njs/njs_math.c +++ b/njs/njs_math.c @@ -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; } } diff --git a/njs/njs_string.c b/njs/njs_string.c index 47bd87bd..39c8806f 100644 --- a/njs/njs_string.c +++ b/njs/njs_string.c @@ -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; } } diff --git a/njs/njs_vm.c b/njs/njs_vm.c index 1232f836..c926d5b1 100644 --- a/njs/njs_vm.c +++ b/njs/njs_vm.c @@ -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;