diff options
author | Dmitry Volyntsev <xeioex@nginx.com> | 2021-07-09 19:14:23 +0000 |
---|---|---|
committer | Dmitry Volyntsev <xeioex@nginx.com> | 2021-07-09 19:14:23 +0000 |
commit | ce158c6ab0a645e0720dba84276f9b7d8ece699c (patch) | |
tree | 80b110ccfc00035af6b28d6c0df8baf22765f611 /nginx/ngx_js.c | |
parent | 6638be8d812a58bb26377e2c9cb3d67657feb05f (diff) | |
download | njs-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.c | 6 |
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; |