Welcome! Log In Create A New Profile

Advanced

[njs] The njs_vm_trap_value() macro.

March 28, 2017 12:26PM
details: http://hg.nginx.org/njs/rev/8e1030bce13c
branches:
changeset: 319:8e1030bce13c
user: Igor Sysoev <igor@sysoev.ru>
date: Tue Mar 21 16:35:36 2017 +0300
description:
The njs_vm_trap_value() macro.

diffstat:

njs/njs_array.c | 4 ++--
njs/njs_date.c | 4 ++--
njs/njs_function.h | 5 +++++
njs/njs_math.c | 6 +++---
njs/njs_string.c | 4 ++--
njs/njs_vm.c | 2 +-
6 files changed, 15 insertions(+), 10 deletions(-)

diffs (120 lines):

diff -r 705129b55888 -r 8e1030bce13c njs/njs_array.c
--- a/njs/njs_array.c Tue Mar 21 16:35:22 2017 +0300
+++ b/njs/njs_array.c Tue Mar 21 16:35:36 2017 +0300
@@ -840,7 +840,7 @@ njs_array_prototype_join_continuation(nj
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_

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 -r 705129b55888 -r 8e1030bce13c njs/njs_date.c
--- a/njs/njs_date.c Tue Mar 21 16:35:22 2017 +0300
+++ b/njs/njs_date.c Tue Mar 21 16:35:36 2017 +0300
@@ -108,7 +108,7 @@ njs_date_constructor(njs_vm_t *vm, njs_v

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 *

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 -r 705129b55888 -r 8e1030bce13c njs/njs_function.h
--- a/njs/njs_function.h Tue Mar 21 16:35:22 2017 +0300
+++ b/njs/njs_function.h Tue Mar 21 16:35:36 2017 +0300
@@ -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 -r 705129b55888 -r 8e1030bce13c njs/njs_math.c
--- a/njs/njs_math.c Tue Mar 21 16:35:22 2017 +0300
+++ b/njs/njs_math.c Tue Mar 21 16:35:36 2017 +0300
@@ -376,7 +376,7 @@ njs_object_math_hypot(njs_vm_t *vm, njs_

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_va
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_va
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 -r 705129b55888 -r 8e1030bce13c njs/njs_string.c
--- a/njs/njs_string.c Tue Mar 21 16:35:22 2017 +0300
+++ b/njs/njs_string.c Tue Mar 21 16:35:36 2017 +0300
@@ -581,7 +581,7 @@ njs_string_prototype_concat(njs_vm_t *vm

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,

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 -r 705129b55888 -r 8e1030bce13c njs/njs_vm.c
--- a/njs/njs_vm.c Tue Mar 21 16:35:22 2017 +0300
+++ b/njs/njs_vm.c Tue Mar 21 16:35:36 2017 +0300
@@ -2518,7 +2518,7 @@ njs_normalize_args(njs_vm_t *vm, njs_val

trap:

- vm->frame->trap_scratch.data.u.value = args;
+ njs_vm_trap_value(vm, args);

return trap;

_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[njs] The njs_vm_trap_value() macro.

Igor Sysoev 446 March 28, 2017 12:26PM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 87
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready