aboutsummaryrefslogtreecommitdiff
path: root/nginx/ngx_js.c
diff options
context:
space:
mode:
authorDmitry Volyntsev <xeioex@nginx.com>2021-07-09 19:14:23 +0000
committerDmitry Volyntsev <xeioex@nginx.com>2021-07-09 19:14:23 +0000
commitce158c6ab0a645e0720dba84276f9b7d8ece699c (patch)
tree80b110ccfc00035af6b28d6c0df8baf22765f611 /nginx/ngx_js.c
parent6638be8d812a58bb26377e2c9cb3d67657feb05f (diff)
downloadnjs-ce158c6ab0a645e0720dba84276f9b7d8ece699c.tar.gz
njs-ce158c6ab0a645e0720dba84276f9b7d8ece699c.zip
Marking different external pointer with unique tag.
An external value has an arbitrary raw pointer associated with it. External values with different prototypes have different C-level structures. To ensure that only appropriate structures are fetched by njs_vm_external() the unique tag has to be provided during creation of external values.
Diffstat (limited to 'nginx/ngx_js.c')
-rw-r--r--nginx/ngx_js.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/nginx/ngx_js.c b/nginx/ngx_js.c
index 9365596a..2d2fbb3a 100644
--- a/nginx/ngx_js.c
+++ b/nginx/ngx_js.c
@@ -173,7 +173,7 @@ ngx_js_ext_string(njs_vm_t *vm, njs_object_prop_t *prop, njs_value_t *value,
char *p;
ngx_str_t *field;
- p = njs_vm_external(vm, value);
+ p = njs_vm_external(vm, NJS_PROTO_ID_ANY, value);
if (p == NULL) {
njs_value_undefined_set(retval);
return NJS_DECLINED;
@@ -192,7 +192,7 @@ ngx_js_ext_uint(njs_vm_t *vm, njs_object_prop_t *prop, njs_value_t *value,
char *p;
ngx_uint_t field;
- p = njs_vm_external(vm, value);
+ p = njs_vm_external(vm, NJS_PROTO_ID_ANY, value);
if (p == NULL) {
njs_value_undefined_set(retval);
return NJS_DECLINED;
@@ -237,7 +237,7 @@ ngx_js_ext_log(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
ngx_connection_t *c;
ngx_log_handler_pt handler;
- p = njs_vm_external(vm, njs_arg(args, nargs, 0));
+ p = njs_vm_external(vm, NJS_PROTO_ID_ANY, njs_argument(args, 0));
if (p == NULL) {
njs_vm_error(vm, "\"this\" is not an external");
return NJS_ERROR;